🧵
Claude Codeにメモリ可視化のツールを作ってもらう
サマリ
topやhtopのようなメモリ可視化ツールがLLMで作れるかを試してみました。
マシンスペック
MacBook Air M2 arm64
内容
ラフに「メモリ可視化できるツールをC言語で作ってください。」とプロンプトで入力しました。
5分弱で作ってくれました。
メモリ可視化ツールを作成しました。
作成したファイル
メインプログラム:
- memory_visualizer.c - インタラクティブなメモリ構造可視化
- memory_monitor.c - リアルタイムメモリ監視ツール
- README.md - 詳細な使用方法とドキュメント
コンパイル済み実行ファイル:
- memory_visualizer - 実行可能
- memory_monitor - 実行可能
主な機能
memory_visualizer
- メモリレイアウト(TEXT/DATA/HEAP/STACK)をASCIIアートで表示
- 各変数のアドレス表示
- 動的メモリ割り当てのインタラクティブデモ
memory_monitor
- プロセスメモリ使用量のリアルタイム監視
- カラフルなプログレスバー表示
- メモリ使用傾向のスパークライングラフ
- ストレステスト機能(--stressオプション)
すぐに実行できる状態になっています:
./memory_visualizer # インタラクティブ版
./memory_monitor # リアルタイム監視版
インタラクティブ版を覗く
ちょっと興奮するようなデザインでした。
% ./memory_visualizer
Welcome to Memory Visualizer!
This program visualizes virtual memory layout and usage.
╔══════════════════════════════════════════════════════════╗
║ MEMORY VISUALIZER ║
╚══════════════════════════════════════════════════════════╝
=== Memory Layout Visualization ===
High Address
┌─────────────────────────────────────┐
│ STACK 0x16f20f444 │
├─────────────────────────────────────┤
│ ↓ Growing Down │
├─────────────────────────────────────┤
│ │
│ Unmapped Area │
│ │
├─────────────────────────────────────┤
│ ↑ Growing Up │
├─────────────────────────────────────┤
│ HEAP 0x600003110010 │
├─────────────────────────────────────┤
│ DATA 0x100bf8000 │
├─────────────────────────────────────┤
│ TEXT 0x100bf2810 │
└─────────────────────────────────────┘
Low Address
=== Memory Usage ===
Memory [████████████████████░░░░░░░░░░░░░░░░░░░░] 1232 KB
=== Variable Address Information ===
Function: 0x0000000100bf2be8
Global variable: 0x0000000100bf8000 (value: 42)
Static variable: 0x0000000100bf8008 (value: 100)
Local static: 0x0000000100bf8004 (value: 456)
Local variable: 0x000000016f20f44c (value: 123)
Heap variable: 0x0000600003110010 (value: 789)
=== Heap Allocation Status ===
Allocated blocks: 0
=== Interactive Memory Demo ===
Commands:
'alloc <size>' - Allocate memory
'free <index>' - Free memory block
'show' - Show current status
'quit' - Exit demo
リアルタイム監視版を覗いてみる
htopには劣りますが、かなり使い勝手の良いものが出来上がりました。
╔══════════════════════════════════════════════════════════════════════╗
║ REAL-TIME MEMORY MONITOR ║
╚══════════════════════════════════════════════════════════════════════╝
=== Process Memory Usage ===
PID: 57371 | Runtime: 00:00:04 | Updates: 4
Current: 1264 KB | Peak: 1264 KB
Process [█████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░] 1264/2528 MB (50%)
=== System Memory Usage ===
Total: 14750 MB | Used: 13172 MB | Free: 1578 MB
System [████████████████████████████████████████████░░░░░░] 13172/14750 MB (89%)
=== Memory Trend ===
Memory Trend (last 60 updates): ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▇▇▇▇█
=== Statistics ===
Average: 1264.0 KB | Growth: +128 KB
Press Ctrl+C to stop monitoring
参考:下記の画像
Discussion