You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GNU gprof默认显示秒级调用耗时,如何改为毫秒级?

解决gprof Flat Profile耗时单位从秒改毫秒的问题

gprof的单位显示是自动适配的——当函数单次调用耗时超过1秒时,会自动切换为秒(s/call);耗时低于1秒就显示毫秒(ms/call),这是工具内置的逻辑,不是你遗漏了什么选项。

想改成固定毫秒单位,有两个可行办法:

  • 手动换算:直接把输出里的s/call数值乘以1000即可,比如0.8 s/call对应800 ms/call,简单直接。
  • 修改源码重编译:要是非得让工具直接输出毫秒,就得改动gprof的源码:找到负责单位判断的代码块(一般在flat_profile.c文件中),注释掉自动切换单位的分支逻辑,强制统一使用毫秒作为单位,之后重新编译替换系统中的gprof版本。

你也可以做个小验证:写一个单次调用耗时小于1秒的测试函数(比如用usleep(300000)模拟300毫秒耗时),用-pg编译运行后生成gprof报告,此时就能看到ms/call的单位,这也能直观验证工具的自适应单位逻辑。

内容的提问来源于stack exchange,提问作者Pato Srna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:05:55