繁体   English   中英

Linux与Windows 7(VM)C ++执行速度

[英]Linux vs. Windows 7 (VM) C++ Execution Speed

我有一个简单的机器学习程序,我使用dlib在C ++中编写。 在我编写和测试的机器上,一台运行Kali Linux的1.6 GHz Atom处理器的华硕Eee PC,并通过cmake用g ++编译,它在2分钟内从头到尾运行。 但是,在配备2.3 GHz Core i7的Macbook Pro上运行的Windows 7 VM(VMWare Fusion)中,使用VS 2013编译的完全相同的代码需要2个小时才能运行。 我正在研究一种在代码中实现多线程的方法,以利用我分配给VM的4个vCPU,但性能上的差异仍然极端,我无法弄清楚原因。 即使考虑到虚拟化的性能开销,我也希望VM更快......我觉得我可能会遗漏一些明显的东西。 如何让VM中的执行速度至少与Linux机器相媲美?

如果没有看到源代码和分析,很难说(如果不是不可能的话),有很多可能的原因。

1)VM上的窗口以某种方式检测到它运行缓慢(因为VM)所以为了保持响应它减少了代码的执行(从理论上讲加快循环的方法是定期对用户输入进行采样,调度程序倾向于给需要交互的进程提供更多的执行时间)

2)VS生成了调试/配置文件符号,如果我记得这是默认的,那么它们会增加很大的开销(然后尝试构建版本)。

3)开销已经正确。 如果我记得在我的机器上正确启动Eclipse需要10秒钟,但在VM(同一台PC)上需要3/4分钟(大约我觉得它有2分钟到几个小时的相似比例。)

4)可能存在其他瓶颈(如带宽使用)

5)您不知道VM内部的工作原理(但您可以在两台机器上为各种情况做基准测试,看看在哪里发现异常)

6)好奇心存在VM更快的情况(我记得somone注意到WinE上的代码运行速度比Windows快,因为WinE使用更快的fmod实现)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM