避免 CPU 争用
Avoiding CPU Contention
我有一个程序,我想计算它的执行时间:
#include <iostream>
#include <boost/chrono.hpp>
using namespace std;
int main(int argc, char* const argv[])
{
boost::chrono::system_clock::time_point start = boost::chrono::system_clock::now();
// Intructions to burn time
boost::chrono::duration<double> sec = boost::chrono::system_clock::now() - start;
cout <<"---- time execution is " << sec.count() << ";";
return 0;
}
例如,一次运行后的结果:
----时间执行为 0.0223588
这个结果不是很清醒,因为包括 CPU 时间 .
我有一个想法,通过测试多次运行并达到平均值来避免 CPU 争用。
问题是:
如何存储上一次运行的时间值?
我们可以通过文件做到这一点吗?
如何在每次运行后增量计算平均值?
欢迎您的建议/伪代码。
您可以使用 2 个参数通过命令行传递平均数:当前平均值和执行的迭代次数。然后:新平均值 = ((当前平均值*N) + 当前值)/(N+1);其中 N 是迭代次数。
相关文章:
- 如何在没有死锁和/或争用的情况下正确使用 std::mutex C++?
- 并行块(线程清理器)之外的 OpenMP 中的争用条件;误报?
- 如何在C++中创建争用条件
- C++上的手动重置事件(来自 C#)实现:如何避免争用条件
- 作为随机数生成器的争用条件
- 设计低线程争用的多线程聊天服务器
- 智能指针析构函数争用条件
- 尽管互斥锁,线程中的争用条件
- ThreadSanitizer 报告的数据争用
- 在C++中递增和递减全局变量时的争用条件
- 线程清理器检测到数据争用,问题出在哪里?
- 为什么此代码不创建争用条件?
- 防止派生析构函数中的 vtable 数据争用
- __has_include() 和后续 #include 之间是否存在争用条件
- 一次加载整个缓存行以避免争用其中的多个元素
- 什么保证两个不相关的线程中的不同不相关对象没有(不可避免的)争用条件?
- 此工厂方法是否会导致争用条件?
- 争用条件 2 个线程交替
- 为什么此示例中没有使用 if 语句的数据争用?
- 避免 CPU 争用