SuperAPI AI 工具集

tracy-memory

数据与分析

查看项目

更新于 10-16 02:34

技能介绍

用途:在基于 Kit 的应用中,用 Tracy 采集逐次分配的 CPU 与 GPU 内存数据。前提是已配置 Tracy 采集工具,并通过 install-profilers 安装相关二进制。

主要能力:通过 omni.cpumemorytracking 扩展用 LD_PRELOAD 拦截 malloc/free,采集 CPU 内存分配;通过 carb.memorytracking.plugin 与 graphics.memory 通道采集 GPU 内存;支持调用栈捕获深度、最小分配阈值等配置。

使用方式:Linux 下需设置 LD_PRELOAD 指向 liballocwrapper.so,并设置 TRACY_USE_LIB_UNWIND_FOR_BT=1、TRACY_NO_SYS_TRACE=1、TRACY_PORT(Isaac Sim 6.0+ 可用 8087)。Kit 启动参数包括 --/app/profilerBackend=tracy、--/app/profileFromStart=true、--/profiler/enabled=true,以及内存跟踪相关开关。启动 Kit 后须 unset LD_PRELOAD,再运行 capture 或 tracy-capture 生成 memtrace.tracy。

验证:用 update 或 tracy-update 执行 strip 测试(-s M)比较文件大小,确认存在内存数据;Kit 日志应出现 Loaded shared library: 'liballocwrapper.so' 与 set memory alloc/free callbacks successfully!。分析在 Tracy GUI 的 Memory 标签进行。

限制:缺少调试符号时调用栈显示 ?? 与 [unknown],只能做大小、数量、生命周期分析;LD_PRELOAD 误传给采集二进制会损坏采集;仅凭日志判断可能误判。