【问题标题】:How can I prove that a program is memory bound?如何证明程序受内存限制?
【发布时间】:2013-11-29 00:50:46
【问题描述】:

据我所知,一般可以通过三种方式来描述程序运行时间的限制:CPU 限制、内存限制和 I/O 限制。如何证明程序是内存绑定的?

【问题讨论】:

  • 删除所有计算,观察运行时没有变化?
  • 奇怪的是,分析器仍然是神秘的工具,只是耳语。

标签: performance performance-testing


【解决方案1】:

您的意思是“证明”,如在学术练习中,还是“证明”,如为运行它的系统购买更多内存是合理的?

在第一种情况下,您需要详细了解算法的作用以及内存延迟情况。如果您可以证明缓存未命中频率 * 主内存延迟 >= “生产”计算周期数,那么程序是内存受限的。

要证明现有软件可能受内存限制,您可以使用低级分析器来获取相同类型的信息(缓存未命中频率等)。或者,您可以尝试在 CPU 时钟频率降低到较低速率或忙于其他工作的情况下运行程序,然后查看运行时间是否会随着 CPU 降级而线性增加,或者更慢一些。

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 2011-02-26
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    相关资源
    最近更新 更多