Boost单元测试可以是多线程的吗
Can Boost unit testing be multithreaded?
我的单元测试需要运行大量BOOST_CHECK_CLOSE调用,这需要很长时间(据我所知,在一个线程上)。我希望能够沿着以下路线做一些事情:
#pragma omp parallel for num_threads(8)
for (int i=0; i<ARRAY_SIZE; i++) {
BOOST_CHECK_CLOSE(array1[i], array2[i], tolerance);
}
然而,当我尝试这种方法时,似乎会发生一些我无法控制的非常严重的内存损坏。分段故障最常见,但有时会出现这种情况:
*** stack smashing detected ***
有没有人有一些经验,可以分享一个好的方法来实现我的预期结果?我相信每个人都会很高兴他们的测试运行得很快!
不能如这里所述(第3项)
http://www.boost.org/doc/libs/1_57_0/libs/test/doc/html/open-issues.html
请参阅此处的完整讨论:
有没有一种方法可以并行运行C++单元测试?
解决方法:用一些本地逻辑替换boost调用,收集所有故障并在最后报告。
由于您关心性能,因此在这样一个紧密的循环中调用BOOST_CHECK机制可能是一个次优的想法。
相关文章:
- 在C++中使用cURL和多线程
- 多线程双缓冲区
- 为什么我的多线程作业队列崩溃
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 为什么一个向量上的多线程操作很慢
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 全局变量 多读取器 一个写入器多线程安全?
- boost::文件系统::recursive_directory_iterator多线程安全
- 如何阻止TensorFlow的多线程
- 如何在多线程中正确使用unique_ptr进行多态性?
- 并发/多线程:是否可以以这种方式生成相同的输出?
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 多线程比没有线程C++慢
- 对多线程输入的QTableWidget进行基准测试,结果很奇怪
- Boost单元测试可以是多线程的吗
- 为什么 gui 线程不应该存在于多线程单元中?
- PC多线程性能和稳定性问题的简单基准测试.如何使每个线程在单独的核心上运行