我想开始在我编写的程序中使用并发性(主要是为了好玩),但我没有多核系统,而且短期内买不起。我运行Linux。有没有办法,例如使用虚拟机,将程序的多线程实现与单线程版本的性能进行比较,而无需在具有多个处理器或内核的硬件上实际运行它?
也就是说,我希望能够实现并行算法,并且能够说,是的,这种多线程实现比单线程性能更好。
谢谢
最佳答案
您无法在单核机器上可靠地测试多线程程序。竞争条件会以非常不同的方式显示,甚至完全隐藏在单核机器上。性能会下降等等。
如果您想学习如何编写多个线程,您可以在单核机器上进行第一步(即 API 的工作原理等)。但是您必须在多核机器上进行测试,并且很可能您会在多核机器上看到在单核机器上看不到的故障。
根据我的经验,虚拟机对此没有帮助。他们引入了以前没有出现过的新错误,但他们无法模拟多核的真实并发。
关于linux - 在单核机器上测试并行程序的性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1457307/