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

Posted

技术标签:

【中文标题】测量执行时间和使用的内存【英文标题】:Measuring execution time and memory used 【发布时间】:2009-03-13 20:09:19 【问题描述】:

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

【问题讨论】:

我使用 C 和 Python 工作。这个特定网站使用的衡量标准似乎与编程语言无关。 【参考方案1】:

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

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于测量执行时间和使用的内存的主要内容,如果未能解决你的问题,请参考以下文章

通过同时运行两个可执行文件来测量内存使用情况

如何测量数据结构的内存使用情况? [复制]

测量电子表格内置函数的执行时间

使用 Micrometer 和 WebFlux 测量执行时间

[linux time命令学习篇] time 统计命令执行的时间

译:在 Spring Boot 中使用 Spring AOP 和 AspectJ 来测量方法的执行时间