performance - 如何检查应用程序是否受 CPU 限制或内存限制?

标签 performance memory caching

我有一个应用程序,它只做很少的计算 CPU 工作,但主要是内存访问(分配对象和移动它们,很少有数字或算术代码)。

在 CPU 空闲的情况下,我如何衡量我花费在内存访问延迟(由于缓存未命中)上的时间份额?

我应该注意到该应用程序在 Hyper-V 客户机上运行;我不确定这会带来什么困难,但它可能会。

最佳答案

您总是可以profile您的应用程序以查看它大部分时间都花在了哪里。

您可以通过这种方式了解很多有关应用程序行为和数据访问模式的信息。

如果您使用的是 Linux,则可以使用多种可用的分析工具,例如:

编辑:

要更准确地测量处理器性能和内存访问,您还可以尝试 AMD CodeAnalyst Performance Analyzer . Here是关于如何将它与英特尔处理器一起使用的说明,虽然我自己没有尝试过。

另一个您可能也会觉得有用的工具是Intel Performance Tuning Utility。 .

关于performance - 如何检查应用程序是否受 CPU 限制或内存限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3156334/

相关文章:

java - 性能循环 arrayList 与 POJO (JAVA)

python - 在 Python 中计算 Kullback–Leibler 散度的有效方法

C++ 字符数组 - 相同的输入给出不同的输出

caching - 远程/云 memcached 服务有什么意义?

html - 强制浏览器重新加载 index.htm

使用 EPPlus 与 Spreadsheet Gear 读取/写入多个文件时的性能差异

python - Python 2.7 中 set 与 frozenset 占用的内存

c - 如何使用 int ** ptr 释放二维数组分配的内存

c++ - 如何测量读取/周期或指令/周期?

java - 了解 Collection.isEmpty() 和 Collection.size() == 0 之间的区别?