メモリ可視化ツール「Ichimi(いちみ)」β版
- ダウンロード商品β 版¥ 0
- ダウンロード商品サンプル教材同梱 β 版¥ 0
メモリヒートマップツール「ichimi」は、CSVファイルからメモリ確保・解放の情報を読み取り、その最終的な状態をヒートマップ形式で可視化するツールです。 C/C++ プログラムから CSV ファイルに出力できるようにすると、実行したプログラムが実行中にどの領域をどのくらいのメモリを使っていたかを直感的に確認することができるので、メモリリークの検出やパフォーマンス改善の一助として活用できます。
インストール手順
ダウロードしたファイルを解凍し、bin\ichimi.exe をダブルクリックするだけで、特別なインストール入りません。
基本的な使い方
1. C/C++ プログラムから CSV ファイルを出力 詳しくは CSV 出力を参照してください。 2. アプリ「ichimi.exe」を起動 3. 画面上部の「Load CSV」ボタンをクリック 4. 表示したい CSV ファイルを選択 試しに sample/sample.csv を選択してみましょう。 5. CSV が読み込まれてヒートマップが描画 6. マウスホイールで縦スクロールし、目的の領域を確認 7. 画面上部の履歴スライダーを動かすと、履歴に沿って表示が変化 8. ブロックをクリックすると、その領域に関するアロケーション履歴を表示
CSV 出力
◯ CSV フォーマット 読み込む CSV は以下の4列構成で、メモリを確保・解放した順に改行して記述したものです。 address,size,action,label address(必須): メモリアドレスを16進数表記で入力します。 0x は省略できます。 size(malloc時のみ): メモリ確保時のサイズをバイト単位で入力します。freeアクションの場合、サイズは空です。 action(必須): メモリ操作のタイプを指定します。 malloc(確保)またはfree(解放)を記載します。 label(任意): 任意でユニークな識別子を設定できます。 呼び出し元の関数名などを記入することで、識別用として利用できます。 半角65文字を超えると途中で見切れます。 ※ 出力例 0x100000,1024,malloc,InitBuffer 0x100400,,free,InitBuffer ※ 出力サンプル:sample/sample.csv ◯ 自作プログラムからの出力方法 sample フォルダに VisualStudio のサンプルプロジェクトがあります。 Sample.cpp が malloc や free などのメモリ関連関数をオーバライドし、CSV を出力するコードとなってます。 参考にしてください。
表示仕様
◯ ヒートマップ表示 - 1 ブロックを 1byte、1KB、…の領域(選択可)としてヒートマップとして表示します。 - 画面上部のスライダーを動かすことで、アロケーション履歴順に表示できます。 - 確保状態のメモリのあるブロックは、メモリの使用率に応じて赤色グラデーションで表示されます。(赤色が濃いほど使用率が高い) ◯ アロケーション履歴表示 - ブロックをクリックすると、そのブロックのアロケーション履歴が表示されます。 - 解放済みメモリは黒、確保状態にあるメモリは青、スライダー位置以降の履歴はグレー表示されます。
動作環境
対応 OS:Windows 10/11 ※ サンプルコードのビルドには VisualStudio があると便利です。
商用利用・ライセンスについて
○ Ichimi 本体 個人、教育・研究機関等での利用:無料 企業、商用目的での利用 :β版に限り無料 ○ ソースコード 有料(予定) ○ ライセンス LICENSE ファイルを参照してください。
更新履歴
2025.06.06 - β 版を公開 2025.06.11 - β 版の不具合を修正 - 教材同梱 β 版を公開