🧵

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