用途:对 Materialize 进行性能剖析,覆盖 CPU、内存和二进制体积分析。
CPU 剖析:推荐使用 samply,可生成兼容 Firefox Profiler 的火焰图。附加到运行中的进程:samply record -p PID。从启动开始录制 environmentd:bin/environmentd --wrapper "samply record"。从启动开始录制 clusterd 进程:bin/environmentd -- --orchestrator-process-wrapper "samply record"。录制结束后 samply 会打开浏览器标签页展示交互式火焰图。在 macOS 上如需 Instruments 支持,可启用代码签名:bin/environmentd --enable-mac-codesigning。
内存剖析:Valgrind 在 Materialize 上不可用,因为太慢而无法产出结果;Heaptrack 可用但较慢。对 environmentd 运行 heaptrack:bin/environmentd --reset --no-default-features --wrapper "heaptrack --raw"。对 clusterd 运行:bin/environmentd --reset --no-default-features -- --orchestrator-process-wrapper "heaptrack --raw"。使用 heaptrack --interpret 分析 .raw.zst 文件。可设置 MALLOC_CHECK_=3 MALLOC_PERTURB_=123(并在 Linux 上以 --no-default-features 编译,改用系统分配器而非 jemalloc)来检测部分内存损坏问题。
二进制函数体积分析:使用 nm --demangle=rust --print-size --size-sort --radix=d BINARY 查看 BINARY 中各符号的二进制大小。输出可能很大,应重定向后单独分析;可用 cut -d' ' -f2- | sort | sort -k3 | uniq 过滤,仅了解符号大小。
限制:资料未提供安装方式、平台支持范围、收费信息及具体效果数据。