【发布时间】:2013-11-29 00:50:46
【问题描述】:
据我所知,一般可以通过三种方式来描述程序运行时间的限制:CPU 限制、内存限制和 I/O 限制。如何证明程序是内存绑定的?
【问题讨论】:
-
删除所有计算,观察运行时没有变化?
-
奇怪的是,分析器仍然是神秘的工具,只是耳语。
标签: performance performance-testing
据我所知,一般可以通过三种方式来描述程序运行时间的限制:CPU 限制、内存限制和 I/O 限制。如何证明程序是内存绑定的?
【问题讨论】:
标签: performance performance-testing
您的意思是“证明”,如在学术练习中,还是“证明”,如为运行它的系统购买更多内存是合理的?
在第一种情况下,您需要详细了解算法的作用以及内存延迟情况。如果您可以证明缓存未命中频率 * 主内存延迟 >= “生产”计算周期数,那么程序是内存受限的。
要证明现有软件可能受内存限制,您可以使用低级分析器来获取相同类型的信息(缓存未命中频率等)。或者,您可以尝试在 CPU 时钟频率降低到较低速率或忙于其他工作的情况下运行程序,然后查看运行时间是否会随着 CPU 降级而线性增加,或者更慢一些。
【讨论】: