Debugging 压力测试并发性:如何降低应用程序中线程的执行速度?

Debugging 压力测试并发性:如何降低应用程序中线程的执行速度?,debugging,concurrency,emulation,Debugging,Concurrency,Emulation,我遇到过这样的情况,即只有在valgrind emulator中运行应用程序时才会出现某些竞争条件。但是,如果我将可执行文件作为普通程序运行,这些问题就不会发生 我的理论是,仿真器会大大降低执行速度,以至于线程有更大的公共时间框架,可以在共享数据结构上运行,从而增加了在这些共享资源上遇到竞争条件的机会 我希望通过专门的模拟器对虚拟时钟频率进行更细粒度的控制 是否有人知道执行此工作的现有工具。我试着在网上搜索这个。应该有一些关于这方面的学术论文。但到目前为止,我还没有找到它。Re,“虚拟时钟频率”

我遇到过这样的情况,即只有在valgrind emulator中运行应用程序时才会出现某些竞争条件。但是,如果我将可执行文件作为普通程序运行,这些问题就不会发生

我的理论是,仿真器会大大降低执行速度,以至于线程有更大的公共时间框架,可以在共享数据结构上运行,从而增加了在这些共享资源上遇到竞争条件的机会

我希望通过专门的模拟器对虚拟时钟频率进行更细粒度的控制


是否有人知道执行此工作的现有工具。我试着在网上搜索这个。应该有一些关于这方面的学术论文。但到目前为止,我还没有找到它。

Re,“虚拟时钟频率”。你不会通过均匀地降低所有速度来改变程序的行为。如果改变时间有什么不同的话,那是因为你改变了不同线程的相对时间。你要找的是系统并发测试。这种类型的测试“控制”线程交错,并彻底检查可能导致不良竞争条件的不同组合。@SolomonSlow是的,你是对的!事实上,没有必要统一地放慢执行速度。我想我只需要定义和放慢关键部分的速度。