目次
1. Bleuet de BREW とは
Bleuet de BREW ( ブルーエ・ド・ブリュー ) は、C / C++ 言語で記述されたBREW アプリを構成する、 任意のモジュールについて実行時間とメモリ使用量を計測し、 その結果を GUI で表示してくれる BREW プロファイラです。
2. 動作環境
Windows 環境 | Windows XP / 2000 |
---|---|
BREW SDK | 1.X / 2.X / 3.X |
ARM コンパイラ | RVCT for BREW 1.2 |
必須ソフトウェア | BREW AppLoader |
推奨ソフトウェア | Perl ( ActivePerl build 5.6.1.638 推奨) |
※ Perl は MOD ファイルの自動転送に必要です。BREW AppLoader で手動転送することも可能です。
3. プロファイルの方法
Bleuet de BREW のフォルダに、ソフィア・クレイドル社から発行されたライセンスファイル licence.dat を格納してから、Bleuet.exe を起動します。
3.1 MOD ファイルのビルド
3.1.1 MOD ファイルの端末への自動転送の設定
メニューバーの [プロジェクト] → [設定] から、[Perl で自動的にコピーする] をチェックし、端末を接続する正しい [COM ポート]を設定します。ただし、Perl がインストールされていることが前提条件になります。
3.1.2. ELF ファイルの選択
[ビルド] タブを選択し、ビルド画面を表示します。
[ELF ファイル] 選択ダイアログで、プロファイルするアプリの ELF ファイルを選択します。
※ ELF ファイルの生成方法は、ARM コンパイラのマニュアルをご覧ください。
3.1.3. プロファイルの種類の選択
[速度] と [メモリ] の 2 種類があります。
- [速度] : プログラムの処理にかかる時間をプロファイルします。
- [メモリ] : プログラムの処理に消費されるメモリ量をプロファイルします。
3.1.4. プロファイルする関数の選択
[プロファイル可能な関数:] からプロファイルする関数を選びます。関数を検索することも可能です。
プロファイル可能な全ての関数を[プロファイルする関数:]に移動します。
[プロファイルする関数:] の全ての関数を、元のボックスに戻します。
選択した関数を[プロファイルする関数:]に移動します。
[プロファイルする関数:] で選択した関数を、元のボックスに戻します。
[VTABLES と veneers] には、選択した ELF ファイル内の VTABLE と、veneer 名が表示されます。
※1. Thumb コードや、単一の機械語で構成される関数など、プロファイルできない関数は、 [プロファイル不能な関数] に表示されます。
※2. 選択する関数が増えると、それだけプロファイルに多くの時間を要します。時間がかかる場合は、プロファイルする関数を減らします。
3.1.5. ビルド
プロファイルする関数を選択したら、[ビルド] ボタンを押して、新しい MOD ファイルを生成し、ELF ファイルと同じフォルダに保存します。
[出力メッセージ] ウィンドウが表示され、デコードの状況が表示されます。[プロファイリング結果] タブを選ぶと、このウィンドウは自動的に閉じます。
Bleuet de BREW フォルダに生成される [functions.txt] は、プロファイルする関数名と ID が格納されるファイルで、プロファイル結果の表示に使われます。
3.2. ログファイルの取得
ログファイルの取得に必要なものは以下の通りです。
- MOD ファイルの実行に必要な MIF ファイルと SIG ファイル
- 開発用 BREW 携帯電話とケーブル
- BREW AppLoader
3.2.1. MOD ファイルの転送
[Perl で自動的にコピーする] が ON の場合、ダイアログが表示されてから MOD ファイルは自動転送されます。 OFF の場合は、BREW AppLoader を使って手動転送します。
MIF ファイルと SIG ファイルは BREW AppLoader を使って手動転送します。
3.2.2. ログファイル
Bleuet de BREW は、プロファイリング情報を生成するために、プロファイルする全て関数の最初と最後に ILOGGER_Printf コードを挿入します。
プロファイリング情報は、端末のアプリケーションフォルダ内の Bleuet.log に保存されます。プロファイルの結果を表示するには、端末の Bleuet.log を PC に転送する必要があります。
不完全なログ情報は記録から自動的に削除されます。
フィルタリングされていないログ情報の出力は、[関数の呼び出し順表示] ボタンを押すと表示されます。
3.3. ログファイルの解析
[プロファイル結果] タブを選ぶと、プロファイル結果が表示されます。
3.3.1. ログファイルの選択
[ログファイル]でログファイルを選択すると、プロファイル結果が表示されます。
プロファイル結果は、MOD ファイルのビルド時に生成される [functions.txt] を参照するので、直近にビルドした MOD ファイルだけがプロファイルの対象となります。
3.3.2. プロファイル結果 : [速度]
左上ツリー表示ボックス
[プロファイルする関数] として選択した関数の階層構造が表示されます。
プロファイル結果 グラフ
関数の処理時間の全体に占める割合が表示されます。
テーブル
- [関数名]: プロファイルする関数名
- [時間]: Sub 関数を除く、関数の処理時間 ( ミリ秒 )
- [時間 ( Sub 関数 )]: Sub 関数の処理時間
- [ヒット数]: 関数の実行回数
- [平均時間]: 関数の処理時間 ( ミリ秒 ) の平均値
- [合計時間の%]: 関数の処理時間の全体に占める割合
3.3.3. プロファイル結果 : [メモリ]
左上ツリー表示ボックス
[プロファイルする関数] として選択した関数の階層構造が表示されます。
プロファイル結果 グラフ
関数のメモリ使用量の全体に占める割合が表示されます。
テーブル
- [関数名]: プロファイルする関数名
- [メモリ]: Sub関数を除く、関数のメモリ使用量 ( byte )
- [メモリ( Sub 関数 )]: Sub 関数のメモリ使用量 ( byte )
- [ヒット数]: 関数の実行回数
- [平均メモリ]: 関数のメモリ使用量 ( byte ) の平均値
- [合計メモリの%]: 関数のメモリ使用量の全体に占める割合※
4. リファレンス
4.1 操作方法
4.1.1. メニューバー
ファイル
プロジェクト
[設定] : MOD ファイルの携帯端末への自動転送の設定 ( 携帯端末が接続される COM ポートの設定も必要 )
ヘルプ
4.1.2. ビルド パネル
- [ELF ファイル] : ARM コンパイラで生成した ELF ファイルの選択
- [プロファイルの種類] : [速度] か [メモリ] の選択
- [プロファイル可能な関数] : プロファイル可能な関数の表示
- [プロファイルする関数] : プロファイルする関数の選択
- [ロードされた関数(合計)] : ロードされた関数の数
- [Thumb] : Thumb コードを含む関数の数 ( Thumb コードを含む関数はプロファイル対象外 )
- [VTABLES] : VTABLE の数
- [プロファイルする関数(合計)] : プロファイルする関数の合計
- [プロファイル不能な関数] : プロファイルできない関数の一覧
- [VTABLES と veneers] : VTABLE と veneer の一覧
- [ビルド] : プロファイル用の MOD ファイルのビルド
- [閉じる] : 終了
4.1.3. プロファイル結果 パネル
- [ログファイル] : ログファイルの選択
- [プロファイルの種類] : プロファイルの種類の表示 ( [速度] または [メモリ] )
- [プロファイル済み関数] : プロファイルされた関数の合計数
- [プロファイル結果] : プロファイル結果のグラフ表示
- [関数の呼び出し順] : 関数の開始と終了の一覧
メモリ : 2943292 : AEEMod_Load funcion end ※ [メモリ]のプロファイルで、メモリサイズが 2943292 ( byte ) の時、AEEMod_Load 関数が終了
時間 : 2943292 : AEEMod_Load function end ※ [時間]のプロファイルで、デバイスの時間が2943292 ( ミリ秒 ) の時、AEEMod_Load 関数が終了
- [CVS へのエクスポート] : プロファイル結果の CVS ファイルへのエクスポート
- [閉じる] : 終了
4.2 エラーメッセージ
- メッセージ: ELF ファイルを開けません。
原因: 選択した ELF ファイルは無効です。
解決方法: ARM コンパイラを使って、有効な ELF ファイルを作成します。
- メッセージ: ELF ファイル ロード時にエラーが発生しました。
原因: 選択した ELF ファイルは無効です。
解決方法:ARM コンパイラを使って、有効な ELF ファイルを作成します。 - メッセージ: プロファイル可能な関数がありません。
原因: プロファイルする関数が選択されていません。
解決方法: プロファイルする関数を選択します。 参考ページ: 3.1.4. プロファイルする関数の選択 - メッセージ: プロファイル ファイル functions.txt を開けません
原因: functions.txt が Bleuet.exe と同じフォルダ内に存在しません。
解決方法: 新しい MOD ファイルを生成します。参考ページ: 3.3.1. ログファイルの選択
- メッセージ: ログファイルを開けません。
原因: ログファイルが破損されているか、選択したログファイルは、Bleuet de BREW で生成した MOD ファイルのログではありません。
解決方法:Bleuet de BREWで生成した MOD ファイルを使ってログを収集します。
- メッセージ: ヘルプファイルが見つかりません。
原因: Bleuet_help.chm が Bleuet.exe と同じフォルダ内にありません。
解決方法: Bleuet_help.chm を Bleuet.exe と同じフォルダに入れてください。
- メッセージ: Perl スクリプトが実行できませんでした。
原因: Perl 実行環境がインストールされていません。
解決方法: Perl をインストールするか、[MOD ファイルの自動転送]を OFF にします。参考 URL: 3.1.1. 設定