c++ - MSVC 发布 exe 的不同性能

标签 c++ performance visual-c++

我很好奇同一可执行文件的性能差异很大的原因是什么。 有时,我运行它需要 20 秒,有时是 110 秒。 源代码是使用标准选项在 Release模式下使用 MSVC 编译的。

代码在这里:

vector<double> Un;
vector<double> Ucur;
double *pUn, *pUcur;
...
// time marching
for (old_time=time-logfreq, time+=dt; time <= end_time; time+=dt)
  {
    for (i=1, j=Un.size()-1, pUn=&Un[1], pUcur=&Ucur[1]; i < j; ++i, ++pUn, ++pUcur)
      {
        *pUcur = (*pUn)*(1.0-0.5*alpha*( *(pUn+1) - *(pUn-1) ));
      }
    Ucur[0] = (Un[0])*(1.0-0.5*alpha*( Un[1] - Un[j]   ));
    Ucur[j] = (Un[j])*(1.0-0.5*alpha*( Un[0] - Un[j-1] ));
    Un = Ucur;
  }

编辑

抱歉,更不用说输入数据了。 vector Un 和 Ucur 被初始化为 2000 个值为 0 的元素。 没有数据被读取/写入。不与控制台交互。 当我说有时我运行时,这意味着我打开了控制台,没有其他应用程序在运行,处理器节流被禁用。我在完成后继续执行应用程序。 我想这与缓存或类似的东西有关,但我不擅长低级的事情。

最佳答案

猜测这是因为您正在从存储设备加载大量数据。如果对存储设备有很多争用,那么运行速度会变慢,因为您的软件需要等待轮到它进行一些加载。

关于c++ - MSVC 发布 exe 的不同性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565354/

相关文章:

MySQL规范化存储过程性能

c++ - 如何分发用 Visual C++ 创建的程序?

.net - 我的对话节点在创建 mfc 项目时丢失了

c++ - 包含 <x> 与包含 <x.h>

C++ 等待多线程

c++ - boost::units 中的毫米

带组的mysql计数运行速度很慢

javascript - 使用 ES6 箭头函数是否有性能提升?

c++ - 为什么我在写 = 而不是 == 时没有收到警告?

c++ - 将指针传递给静态方法