事实上如今高性能的脚本都是先编译后运行的,大名鼎鼎的JavaScript V8引擎,号称速度最快的LUA-Jit,以及众所周知的ActionScript。。。预先编译不仅能大幅提高运行速度,更重要的是能够提前发现脚本中显式的错误。
但脚本中所谓的编译,和传统语言的编译,还是很大区别的。脚本的编译,不过是代码上的深度优化,很快就可以完成。相比复杂了多的C++来说,似乎是望尘莫及的。提到C++的编译速度,大家的映象莫过于在VC里按下F5之后,看着输出框内一条一条的“Compiling...”缓缓出现。有时仅仅测试一个微小的修改,也要等上好几秒的时间。缓慢的编译速度备受煎熬,以至于简单的程序往往选择VB或C#这样可以快速调试的语言。
对于庞大的MFC程序来说,缓慢的编译是理所当然的。但简单的小程序出现过长的编译时间,那一定是头文件引用的不合理了。事实上,使用预处理头文件的小程序,编译仅仅是一瞬间的,之后的各种停顿往往是IDE引起的。
那么我们就来测试下,不用IDE,仅用纯命令编译个C++小程序。我们使用VC6.0的编译器:CL.exe
为了确保纯净的编译环境,我们把CL.exe必须依赖的文件复制到新建的文件夹里。对于VC6的版本,只要有如下5个文件,就可以完成.cpp到.exe的编译了。