测量执行时间和使用的内存

问题描述 投票:0回答:4

大多数在线法官都有某种系统来测量执行时间和内存消耗。 此处显示了一个示例。它是如何完成的?是否有一个简单的 UNIX 实用程序可以用来在我自己的程序上运行类似的测试?

profiling
4个回答
3
投票

Valgrind 及其所有工具将为您提供一些信息:

  • cachegrind
    - 缓存模拟器
  • callgrind
    - 调用图跟踪 - 允许获取调用成本并显示程序中发生的情况
  • massif
    - 有关堆内存使用情况的信息
  • memcheck
    - 内存泄漏检查

此外,您还可以使用更复杂的软件,例如Intel VTune

如果您对底层细节和真正的硬件计数器感兴趣,请查看 perfmon2,它有机会在未来的某个时候进入主流内核。

并搜索旧问题 - 有很多关于这个主题的帖子。


1
投票

UNIX time 命令将输出用户时间量、系统时间和一些内存统计信息。 Linux 版本可以在here找到,并包含一些格式字符串,允许您指定确切的输出。


1
投票

上次我需要分析 Unix 程序时,我使用了 gcc 和 gprof。它为我提供了我需要的信息。


0
投票

您可以使用

timeout
命令为您的程序设置时间限制。 对于空间检查,您可以循环运行它。
pmap $(pgrep -f -u username program) | sed -n -e 's/ total \+//p'
获取程序当前的内存使用情况。

© www.soinside.com 2019 - 2024. All rights reserved.