0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コレどこのメモリ?を”見える化”する「Ichimi(いちみ)」のラベル機能

Posted at

Ichimi - Lesson02.gif

🔰 はじめに

Ichimi(いちみ)は、CSV に記録したメモリの確保・解放の記録をヒートマップとして可視化するツールです。

プログラムが複雑になると「このメモリどこで確保されたの?」という疑問が頻発します。
そんなときに役立つのが「ラベル機能」です。

Ichimi(いちみ)では、確保・解放されたメモリブロックに任意のラベルを付加して記録した CSV を "見える化" できます。
今回はこの ラベル機能 を使って、確保されたメモリの呼び出し元を見てみようと思います。

では、さっそく...

🧪 サンプルコードと CSV

サンプルコード

void	test01()
{
	ScopedLabel	label( __func__ );

	char* ptr = new char[ 100 ]; // 100 バイト確保
	delete[] ptr; // 解放
}

void	test02()
{
	ScopedLabel	label( __func__ );

	char* ptr = new char[  50 ]; // 50 バイト確保
	delete[] ptr; // 解放
}

void	test()
{
	test01();
	test02();
}

サンプルコードで記録した CSV

0174E570,100,malloc,test01
0174E570,0,free,test01
0174E438,50,malloc,test02
0174E438,0,free,test02

サンプル解説

  • 関数 test01、test02 があり、それぞれの関数内でメモリを確保 → 解放
  • 各関数の最初で ScopedLabel クラスを利用して、CSV にラベルとして関数名を記録
  • ScopedLabel は Ichimi のログシステムにラベル(識別子)を、関数(スコープ)の終了まで設定するクラスです。
  • __func__ は関数名を自動で取得する C/C++ の組み込みマクロです。

👀 観察

では、Ichimi(いちみ)て CSV を読み込んで、観察してみましょう。

  • ブロックサイズを「1B」にしましょう。
  • 履歴スライダーを左から右に動かしながら、確保 → 解放の流れとラベル表示を確認しましょう。
  • 赤い確保ブロックをクリックすると、画面右にラベル(関数名)が表示されます。
  • ラベルで test01, test02 で確保されたメモリを明確に区別できます。

Ichimi - Lesson02(Short).gif

🧩 実務や教育での活用・応用

サンプルのように関数名をラベルとして設定すると、各ブロックがどの関数から発生したものかが一目瞭然です。

さらにラベル機能を上手に利用すれば、学習やバグ調査の精度・スピードが格段に上がります。
たとえば...

  • 実務:メモリ確保のトラッキング・最適化に便利
  • 学習:初学者が「どこで何をしているか」を視覚的に理解できる
  • 応用:ラベルに ID やハッシュをつければ、さらに詳細な追跡も可能

🛠️ Ichimi(いちみ)を使ってみませんか?

Ichimi(いちみ)は、CSV に記録したメモリの確保・解放の記録をヒートマップとして可視化するだけでなく、今回のサンプルで利用したように学習や調査の手助けもしてくれます。

ぜひ体感してみてください!

👇👇 Ichimi(いちみ)のダウンロードや基本的な使い方 👇👇
💾 Ichimi(いちみ)ダウンロード(BOOTH)
📝 new / delete を“見える化”する!メモリ可視化ツール「Ichimi(いちみ)」入門

今回の記事で利用したサンプルを含めた体験キットを準備中です✨

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?