我注意到当我运行使用forkIO
和par
编译的标准基准(没有-O2 -rtsopts -threaded -eventlog
或+RTS -N2 -ls
)时,实际工作(不仅仅是GC)是遍布两个核心。标准源的快速grep没有显示并行性源自何处。
我想做一些仔细的基准测试,例如两个线程之间的MVar上有争议的更新;我可以使用标准准确地做到这一点(例如,如果测试之间发生所有并行性的话)吗?
答案 0 :(得分:1)
我在测试的每个IO操作之前和之后都遇到traceEventIO
,并且在测试代码执行期间它看起来完全是单线程的,所以我认为我应该很好。