General Information
===================

cloopのブロック参照状況を可視化するcloopprofilerのREADMEです。cloopprofilerはブート時やアプリケーション起動時のブロック参照状況を色付きのブロックで可視化し、ブロック読み出しの状況をアニメーション表示します。また、cloopoptimizerやrblk2bl、appblk2blなどのコマンドラインユーティリテイのGUIフロントエンドや、cloopの高速化ウィザードを提供します。


The function of this tool
=========================

cloopprofilerを利用するためには、次のようにコマンドを実行します。

 # cloopprofiler


Menus
=====

それぞれのメニューで実行できる機能を説明します。

*File
 "File"メニューは、ブロック参照リストread_blocksやcloopのファイルを開き、可視化させる事が出来ます。また、このプログラムから去ることも出来ます。

 + Open read_blocks
　 "Open read_blocks"メニューは、ブロック参照リストread_blocsのデータを読み込み、可視化するコマンドです。"Open cloop"メニューを使用するためにはまずこのメニューでcloopに対応するread_blocksを読み込まなければなりません。
   このメニューで可視化できるread_blocksは、LCAT1.0以降のcloopドライバで出力されたread_blocksのみとなります。それ以前のトライアルバージョンのものは読み込みが出来ません。
     
 + Open cloop
   "Open cloop"メニューは、cloopの実体ファイルを読み込んでデータを可視化します。"Open cloop"メニューを実行することで、"View"->"draw resource"メニューから描画するリソースタイプを選択することが出来るようになります。また、"Open cloop"メニューを実行することで、"Tool"->"Acceleration Wizard"メニューを実行することが出来るようになります。
   もしも別のcloopを読み込ませたいと考えるのなら、もう一度"Open read_blocks"メニューを実行するところからやり直さなければなりません。

 + Quit
   "Quit"メニューは、このプログラムを終了させます。

*View
  "View"メニューは、ブロック参照状況の表示の調整を行います。

 + draw resource
   "draw resource"メニューコンテナは、表示させるブロックをcloopのデータとCD上のオフセットとのどちらかを選択することができます。

  - read_blocks
    "read_blocks"メニューでは、描画の表示をread_blocksから読み出したcloopのデータ上でのブロック配置でデータの描画を行います。このモードでは、高速化されていてもされていなくても同じcloopイメージは同じように描画されます(見た目で高速化されているかどうかを判別は出来ません)。

  - cloop header
    "cloop_header"メニューでは、描画の表示をcloopのヘッダから読み出した物理的なブロック配置でデータの描画を行います。もしも高速化されていないイメージを読み出したなら、表示はばらばらになります。高速化されているイメージならば、一本のきれいなラインを引くようにアニメーションするでしょう。

 + block color
   "block color"メニューコンテナは、cloopのデータブロックを表す描画ブロックの色の付け方を変更します。これにより、見た目でどこが読み込み時間が長いか、どこが頻繁に読み込まれているのかが一目でわかるようになります。

  - read time
     "read time"メニューは、ブロックの色を読み込みにかかった時間で表示します。読み込み時間が長ければ長いほど色が深くなります。たまに、真っ白だけど読み込みカーソルが留まるブロックがありますが、大概は「ブロック読み込みが終わった後、しばらく次のブロック読み込みが発生していない」状態です。

  - read freq
     "read freq"メニューは、ブロックの色を読み込み回数によって表示します。読み込み回数が多ければ多いほど色が深くなります。つまり、読み込み回数が多いブロックは次第に色が深くなっていくということになります。

  - time/freq
     "time/freq"メニューは、ブロックを対角線で半分に切り、上の三角を"read time"形式、下の三角を"read freq"で描画します。

  - freq/time
     "freq/time"メニューは、ブロックを対角線で半分に切り、上の三角を"read freq"形式、下の三角を"read time"で描画します。

*Tools
  "Tools"メニューは、cloopの高速化に役立ついろいろなユーティリテイダイアログを表示します。

 - Accelerate Wizard
     "Accelerate Wizard"メニューは、"Open read_blocks"、"Open cloop"で開いたcloopイメージを高速化するウィザードを表示します。これらのメニューからファイルがヨミだされていない状態では仕様することが出来ません。詳しくは"dialog"の項を参照してください。

 - reset "read_blocks"
     "reset "read_blocks""メニューは、次のコマンドと同様の効果を発揮します。

       # echo 1 > /proc/cloop/reset_read_blocks

     高速化対応のcloopドライバが組み込まれており、かつブートオプションでブロック参照状況を取得する設定を行っていない場合、このメニューは常に無効となります。

 - Make readahead list
     "Make readahead list"メニューはあなたの望むブロック参照リストひとつをブロック先読みリストに変換します。詳しくは"dialog"の項を参照してください。

 - Optimize cloop
     "Optimize cloop"メニューはあなたの望むcloopを高速化します。高速化するには対応したブロック先読みリストが必要となります。詳しくは"dialog"の項を参照してください。

*Help
 -info
  "info"メニューはこのプログラムの情報を表示します。

Buttons and others
==================

ボタン等のインターフェイスが出来ることを紹介します。

*">"("||") ボタン
 表示可能なデータが読み込まれているとき、アニメーションを再生します。
 アニメーションの再生中は一時停止ボタンとなります。

*"■" ボタン
 アニメーションの再生をストップし、タイムカウンターを初期状態に戻します。

*">>" ボタン
 アニメーションを早送りします。

*"<<" ボタン
 アニメーションを巻戻しします。

*描画領域
 アニメーションが描画される領域です。現在読み込んでいるブロックは、青い枠で囲まれて表示されます。描画済みの領域をマウスでクリックすることで、その領域に書き込まれているブロックの詳細をポップアップして表示します。

*時間進捗バー
 描画領域の真下に表示されているバーは、時間の進み具合をあらわしています。
 トグルをつまんで動かすことで、再生を好きな場所にスキップさせる事が出来ます。

*"Block/Cell" 選択ボタン
 ひとつのブロックに含まれるデータ量を変更します。"read_blocks"モードではブロックの数が、"cloop header"モードではブロックのデータサイズがデータ量の単位となります。データ量を変更したあとは、">"("||") ボタン、"■" ボタン、"change"ボタンを押すことで変更を適用できます。

*"Draw Color" リスト
  "View"->"draw color"メニューと同じ効果を持ちます。また、メニューの選択とこのリストの選択は同期して動きます。

*"Analytial of Log" 
 read_blocksの内容を読み込み、分析した結果を表示します。

*"Data of Blocks" list
描画ブロックの情報をまとめてリストとして表示します。リストの内容をクリックすると、クリックしたリストが指す描画領域のブロックが強調表示されます。

Dialogs
=======

"Tools"メニューから起動する各種のダイアログの説明を行います。

*Accelerate Wizard
 "Accelerate Wizard"は、"Open read_blocks"、"Open cloop"で読み込んだCDのデータを元に、cloopの高速化を行います。高速化はファイルの指定をすれば自動的に行われ、高速化されたcloopとブロック先読みリストを生成します。このウィザードで作成されたcloopと先読みリストを高速化対応のcloopドライバを持つminirt.gzと組み合わせてmkisofsすると高速化CDの完成です。

 以下は、このダイアログ内の説明です。

 - read_blocks
  "Open read_blocks"で読み込んだread_blocksのパスを表示します。編集は出来ません。

 - cloop image
  "Open cloop"で読み込んだcloopのパスを表示します。編集は出来ません。

 - Block List 
  ブロック先読みリストの出力先の指定を行います。

 - burst size
  cloopreadaheadでの読み込みブロックの粒度をキロバイト単位で指定します。

 - Optimized Cloop
  高速化したcloopの出力先を指定します。


*Make readahead list
 "Make readahead list"では、任意のread_blocksからブロック先読みリストを作成します。

 以下は、このダイアログ内の説明です。

 - Input File
  入力のブロック参照リストの指定を行います。

 - Output File
  ブロック先読みリストの出力先の指定を行います。

 - burst size
  cloopreadaheadでの読み込みブロックの粒度をキロバイト単位で指定します。

*Optimize cloop
 "Optimize cloop"では、任意のcloopを高速化します。高速化には対象となるcloopのブロック参照状況先読みファイルが必要です。

 以下は、このダイアログ内の説明です。

 - Input cloop
  入力のcloopの指定を行います。

 - Input Block List
  入力のcloopに対応したブロック先読みリストの指定を行います。

 - Output Cloop
  高速化したcloopの出力先を指定します。
