用c++编写一个非常繁重的操作来进行测试
Writing a very heavy operation in c++ for testing
这可能与大多数问题相反,但出于测试目的,我想创建一个谓词,该谓词使用一些非常慢的操作,不创建数据竞争。与顺序实现相比,我需要测试并行实现,并希望在不创建大规模向量的情况下这样做。我目前使用这个谓词:
[](std::size_t& v){
v = 42; //some random number...
}
但是为了看到任何真实的结果,我的向量需要在大小方面是巨大的,我宁愿有一个更小的大小和更大的谓词执行时间…我应该写什么样的lambda函数,这样我才能测试我的实现?
只是一个想法,强制多次重复read-modify-writes:
std::size_t volatile& vv = v;
vv = 0;
for (int i = 0; i != 100; ++i) { vv +=1; }
由于编译器可能没有优化这一点,因此它将涉及相当多的v
的实际读取。也就是说,你可能还是会碰到缓存。
如果也要避免,则需要std::atomic_store
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 重载操作程序时出错>>用于类中的字符串 memebr
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 数据成员SFINAE的C++17测试:gcc vs clang
- 对字符串进行位操作
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 如何对移动操作进行单元测试(默认)?
- 如何忽略测试 DoAll() 中的第一个操作
- 在测试网上部署智能合约时合约错误中的未知操作 hi
- 谷歌测试:如果测试失败,则执行其他操作
- 规格CPU基准测试中各种浮点操作的百分比
- C#和C++中字符串操作的不同基准测试
- 单元测试时操作迭代器
- 生产者和使用者函数,用于在操作手册中测试C++并发的线程安全堆栈示例
- 测试一个操作在Qt中花费多少时间的最简单方法
- c++如何对非常快的操作进行基准测试
- 用c++编写一个非常繁重的操作来进行测试
- 为单元测试操作内部函数的返回值