为什么在MSYS中配置这么慢?

时间:2010-02-13 02:07:34

标签: msys

当我使用MSYS编译某些内容时,./configure步骤可能需要比make更长的时间。但是,Linux中的相同过程具有快速配置和慢速制作。这只是MSYS中的一些设置会让我的系统陷入困境吗?有没有人有解决方案?

3 个答案:

答案 0 :(得分:22)

典型的configure脚本执行 lot 启动小的子进程。在类Unix操作系统上,这是通过fork()exec()函数调用完成的,这些调用具有需要保留的非常特殊的语义(例如,分叉后的写时复制共享内存) 。在Windows上,子进程使用CreateProcess()创建,其具有非常不同的语义(例如,与父进程完全分开的内存空间)。为了正确执行类Unix脚本和程序,MSYS需要进行大量的仿真工作,以便在Windows上创建新的进程,如Unix上的fork()/exec()。这最终比本机提供这些函数调用的操作系统慢。

答案 1 :(得分:0)

您可能还想关闭已运行的所有病毒扫描程序。他们将在每次加载时重新扫描可执行文件,这绝对会破坏脚本性能。

即使您没有运行防病毒软件,也不要忘记Windows Defender。 (您可能还想禁用用户帐户控制,但我不知道它对程序加载时间有什么影响。)

答案 2 :(得分:0)

涉及大量磁盘访问,恕我直言减慢了很多事情。 例如,configure创建临时源代码,作为其执行的测试的一部分进行编译。这将创建一个必须再次删除的目标文件。 我做的加速配置是提取我想在RAM驱动器上构建的源,并在那里配置和编译它。 我建议使用免费的ImDisk(http://www.ltr-data.se/opencode.html/#ImDisk)。