17

当我使用 MSYS 编译某些东西时,该./configure步骤可能需要比make. 但是,Linux 中的同一进程具有快速配置和慢速生成。这只是 MSYS 中的一些设置,它使我的系统陷入困境吗?有没有人有办法解决吗?

4

3 回答 3

21

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

于 2010-02-13T02:52:28.920 回答
0

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

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

于 2010-10-12T18:25:31.817 回答
0

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

于 2013-01-03T09:31:22.483 回答