bdk*_*bdk 17
根据Valgrind Docs,他们不支持多个处理器:
关于线程程序要指出的主要事情是程序将使用本机线程库,但Valgrind将执行序列化,以便一次只运行一个(内核)线程.这种方法避免了实现Valgrind的真正多线程版本的可怕实现问题,但它确实意味着线程应用程序仅在一个CPU上运行,即使您有多处理器或多核机器也是如此.
Valgrind不会自己安排线程.它仅使用简单的锁定方案确保一次只运行一个线程.实际的线程调度仍然在OS内核的控制之下.但是,这意味着你的程序在Valgrind上运行时会看到与正常运行时不同的调度.这是因为Valgrind将线程序列化,并且因为代码运行速度比正常情况慢得多.
如果您有某种并发,严重竞争,锁定或类似的错误,这种调度差异可能会导致您的程序行为不同.在这种情况下,您可以考虑使用Helgrind和/或DRD工具来跟踪它们.
| 归档时间: |
|
| 查看次数: |
3660 次 |
| 最近记录: |