可能重复:
您使用了哪些策略来缩短大型项目的构建时间?
我用 C++ 完成了大约 800 行编码,cpp 文件有一些 7-8 个类也没有对象,但是程序需要 7 秒才能构建。这是我的第一个 C++ 程序,所以我想知道它是否正常?还是太过分了?此外,如果 C++ 方面的专家可以分享一些对我这样的初学者有帮助的见解,那将是非常棒的。如果它有任何帮助,我正在使用 Visual Studio 2010。
可能重复:
您使用了哪些策略来缩短大型项目的构建时间?
我用 C++ 完成了大约 800 行编码,cpp 文件有一些 7-8 个类也没有对象,但是程序需要 7 秒才能构建。这是我的第一个 C++ 程序,所以我想知道它是否正常?还是太过分了?此外,如果 C++ 方面的专家可以分享一些对我这样的初学者有帮助的见解,那将是非常棒的。如果它有任何帮助,我正在使用 Visual Studio 2010。
编译 C++ 的时间可能比我使用过的任何其他语言的变化都大。
可以产生重大影响的一件事是您包含的标题。即使您的代码可能只有 800 行,但如果其中一些是#include
s,编译器可能很容易查看数千行(仅供参考,#include <windows.h>
本身通常意味着编译器将查看超过 10,000 行)。
我们中的一些人最近在 C++ 聊天室中对一段特别讨厌的代码进行了一些测试,该代码有很多递归模板。尽管它只有大约 30 行代码,但取决于您设置的参数,很容易获得一个小时或更长时间的编译时间——而且对于大多数编译器(包括 VC++10 和 11/2012)来说,这很容易彻底使编译器崩溃。
如果代码在标头和/或模板(尤其是递归模板之类的东西)方面几乎没有或根本没有,那么编译 7.5 秒似乎相当多。只是为了比较,我做了一个快速测试,编译了一个接近相同大小(926 行)的程序。这花了0.3秒。我的机器已经有 5 年或 6 年的历史了,所以它的速度也没有达到最先进的水平。同时,我应该补充一点,对于编译那么少量的代码,CPU 速度可能不是主要的决定因素。我希望 SSD 比更快的 CPU 有更大的不同。
C++ 是一种复杂的语言,与许多其他语言相比,它需要更多的时间来编译。最重要的是,Visual Studio 本身在构建 Intellisense 数据库等方面有额外的开销。在实际编译之后还需要考虑一个链接阶段。
当 Visual Studio 创建一个新项目时,它通常会创建一个包含大量 Windows 头文件的预编译头文件。这将为您的 800 行源代码添加数千行。
7 秒似乎有点慢,但并不过分。