C++ C+中的性能下降(恶化)+;密码

C++ C+中的性能下降(恶化)+;密码,c++,algorithm,performance,C++,Algorithm,Performance,我需要在代码中添加一些人工延迟,而不必使用std::this\u thread::sleep\u for()来测试某些硬件。事实上,我需要这样一个函数: addLatency(10m) // Do dummy computation for 10 milli second long int j=0; for (long int = 0; i < MAX_SIZE < i++) j++; 我知道一种可能的解决方案是通过进行如下虚拟计算: addLatency(10m) //

我需要在代码中添加一些人工延迟,而不必使用
std::this\u thread::sleep\u for()
来测试某些硬件。事实上,我需要这样一个函数:

addLatency(10m) // Do dummy computation for 10 milli second
long int j=0;
for (long int = 0; i < MAX_SIZE < i++)
    j++;
我知道一种可能的解决方案是通过进行如下虚拟计算:

addLatency(10m) // Do dummy computation for 10 milli second
long int j=0;
for (long int = 0; i < MAX_SIZE < i++)
    j++;
long int j=0;
对于(长int=0;i
但是,有没有更简单或合乎逻辑的方法来做到这一点?
我搜索了很多,可以找到很多提高性能的解决方案,但我找不到任何使性能最差的方法。

此循环本身不可靠,无法产生任何效果:


您为什么不想为
使用
sleep\u?您想在这10毫秒内使用100%的处理器功率,还是使用0%的处理器功率?对于后者,您需要某种类型的休眠或等待函数。我不能让进程休眠,我必须使用处理能力。如果您的编译器启用了优化,您的循环将被完全优化。显而易见的方法是
while(staddy_clock::now()
.Mh,如果不允许使用休眠函数,我们认为读取时钟是免费的吗?@YvesDaoust轮询时钟不是免费的,而休眠线程不一定做任何事情。OP只关心保持cpu总线这不是我的意思。允许吗?为什么不声明一个全局
volatile
变量并使其递增的忙循环?@YvesDaoust OP:“我不能让进程休眠,我必须使用处理能力。”所以我认为是的。