我正在开发一个多线程应用程序,它在我的 8 核开发系统上运行良好。当我在具有 2 个内核的 PC 上运行它时,我遇到了一些同步问题。
除了关闭超线程之外,还有什么方法可以限制应用程序可以使用的内核数量,以便我可以模拟单核和双核环境进行测试和调试。
我的应用程序是使用 Visual Studio 2010 用 C++ 编写的。
最佳答案
现在我们总是在虚拟机中进行测试,因为设置具有给定限制的特定环境非常容易。
例如,VMWare 允许您轻松地限制使用的处理器数量、内存量、硬盘大小、USB 或软盘或打印机的存在以及所有其他奇妙的东西。
事实上,我们有脚本可以在按下按钮时完成所有工作,从将 VM 恢复到已知的初始状态,然后启动它,通过网络安装代码,运行测试周期,然后移动结果也发送到网络上的分析机。
它大大加快并简化了测试制度。
关于c++ - 限制多线程应用程序的处理器数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20325917/