|
VSF Documented
|
Data Structures | |
| class | Block |
| class | C |
| class | Diff |
| class | Dump |
| class | Parser |
| class | Reporter |
| class | SymbolResolver |
| class | Visualizer |
Functions | |
| str | fmt_kb (int b, int p=2) |
| str | fmt_size (int b) |
| list[int] | hsl (float h, float s, float l) |
| main () | |
Variables | |
| int | KB = 1024 |
| int | MIN_SIZE_KB = 10 |
堆内存分析工具 - Heap Memory Map Visualizer
通用对比分析:对比任意两次 dump,显示 curr_only(新增)和 prev_only(释放)
锁定期间分析:通用对比的特例,额外保证 lock 期间不会真正释放内存,便于查找泄漏
生成 heap.dump 文件:
在代码中调用 vsf_heap_dump() 函数,该函数会通过 vsf_trace 输出堆内存 dump 日志。
将日志复制出来保存成文件(如 heap.dump.txt),不需要清理非 heap 的其他日志,工具会自动过滤。
如果仅关注某段代码的内存申请或释放,使用方式如下:
vsf_heap_dump(true); // 在关注代码段开始前调用,锁定堆(锁定期间不会真正释放内存)
// ... 你的代码 ...
vsf_heap_dump(false); // 在关注代码段结束后调用,解锁堆并追踪锁定期间的内存分配
使用方法:
python visualize_heap_map.py heap.dump.txt # 基本用法
python visualize_heap_map.py heap.dump.txt -s project.out # 带符号解析 (GCC: .out/.elf, MDK: .axf)
python visualize_heap_map.py heap.dump.txt -d 1 3 # 对比第1次和第3次 dump
| str visualize_heap_map.fmt_kb | ( | int | b, |
| int | p = 2 |
||
| ) |
| str visualize_heap_map.fmt_size | ( | int | b | ) |
| list[int] visualize_heap_map.hsl | ( | float | h, |
| float | s, | ||
| float | l | ||
| ) |
| visualize_heap_map.main | ( | ) |
| int visualize_heap_map.KB = 1024 |
| int visualize_heap_map.MIN_SIZE_KB = 10 |