Jee*_*tel 5 c linux windows gcc visual-studio-2010
大多数人在Linux上使用gcc,在Windows上使用MSVC编译器.我最近在我的Windows机器上安装了Cygwin的GCC编译器,并且正在使用它.
如果它们之间有任何性能差异,我只是好奇吗?我的意思是GCC无法直接安装在Windows上,因此Cygwin软件包在Windows上构建了类似Linux的环境,然后GCC将使用它.那么有什么减退吗?
Linux上的GCC和Windows上的Cygwin的GCC都有性能差异吗?
我只是好奇它们之间有什么性能差异吗?
当然,编译器有一些竞争点:
根据我的经验,前 3 点属于 MSVC。Windows 上的 GCC(尤其是 Cygwin 发行版)的编译速度非常慢,但我想这是预料之中的。GCC 是跨平台的,有大约 5 个中间阶段(从一棵树转换到另一棵树),具有可插拔架构,以及许多其他可能会牺牲编译速度以获得灵活性的东西。我没有足够的 MSVC 架构数据。内存使用量不是很重要,但 MSVC 仍然做得更好,我并没有真正争论为什么会发生这种情况,只是查看任务管理器值。生成的代码效率是相当拼的。在许多情况下,MSVC 获胜,但在其他一些情况下,GCC 获胜。两者都是旧编译器,并通过大量优化进行了改进。GCC 对阵 MSVC 的一大败笔是 WPO(全程序优化)。MSVC已经成熟了相当长的时间,而AFAIK GCC仍在走向成熟(4.X系列越来越好,但还无法与MSVC相媲美)。
... cygwin 软件包在 Windows 上创建了一些类似 linux 的环境,然后 gcc 将使用它,那么这有什么缺点吗?
事实上,并非如此。您可以在没有任何 Unix 模拟环境的情况下使用 GCC。MinGW 发行版可以独立使用,无需 MSYS。但是,如果您想以 GNU 风格编译程序(例如“./configure && make && make install”风格),它仍然是必需的。
Linux 上的 gcc 和 Windows 上的 gcc with cygwin 都有什么性能差异?
是的。GCC 在 Linux 上的运行速度似乎比 Windows 上快得多,但这并不总是 GCC 本身的问题。Windows 上的进程创建比 Linux 上复杂得多(您可以比较 WinAPI 中的 CreateProcess 和 Unix 中的 exec),并且通常它会导致任何程序在 Windows 上的执行速度比 Linux 上慢。