【发布时间】:2012-05-25 00:16:34
【问题描述】:
当您在 Linux 上使用 time 命令时,我了解“真实”、“用户”和“系统”之间的区别,正如其他线程中所述:What do 'real', 'user' and 'sys' mean in the output of time(1)?
现在我正在对 Python、Java 和 C 的性能进行小幅比较,我想知道应该使用哪个报告。
"User+sys" 似乎是更现实的一个,但是在将 C 与 Java 进行比较时,这不会导致问题,例如,因为 JVM 知道如何优化多处理器/线程的代码,而 GCC 不知道不是吗?
另外,如果我确保没有其他繁重的进程在后台运行,“真实”是否足够现实?
【问题讨论】:
-
你似乎想测量周期而不是时间,也许你应该使用其他工具,不知道是哪一个。
-
我知道循环会更好,但时间不够准确,无法很好地了解每种语言的性能吗?
-
不要忘记页面错误。用户和系统都不会考虑它们。时钟在缓存未命中时一直滴答作响,但在页面错误期间,记帐本质上为您的进程停止。并且页面错误是昂贵的。