把C++当脚本语言写!
作者:网络转载 发布时间:[ 2013/4/22 11:33:45 ] 推荐标签:
提到脚本,脑海里马上闪过一大堆:Python,Perl,Ruby,PHP,JS,VBS,LUA。。。 不过你有没听说过,用经典的C++做脚本语言吗?先不多说,上个图。(先别纠结那个function,那仅仅是个宏而已,待会你明白了)
或许你在想这一定是疯了,用世界上复杂的语言做脚本,写的人累不说,脚本引擎先累坏了。各种复杂的模板库,要边解释边运行,得有多强大的虚拟机才撑得住。
好吧,那么我们退一步,不强求解释执行,回归到原始的编译后执行。———— 不过那还算脚本吗?
编译速度
事实上如今高性能的脚本都是先编译后运行的,大名鼎鼎的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的编译了。
CL.exe
C1XX.DLL
C2.DLL
MSPDB60.DLL
Link.exe
打开cmd,设置好环境变量,对应到VC6的头目录和库目录
SET INCLUDE=C:Program Files (x86)Microsoft Visual StudioVC98Include
SET LIB=C:Program Files (x86)Microsoft Visual StudioVC98Lib
可以调用命令编译了:
cl test.cpp
一眨眼的工夫,编译和链接完成,生成了test.exe,一切正常。而这还是在没有使用预编译头的情况下编译的。
由此可见,即使语言本身很复杂,但只要用它写的代码不复杂,编译还是非常快的。
仔细想想也应如此。以如今的硬件配置,运行98年的编译器,编译一个才几行代码的程序,自然是一瞬间的。
命令行编译简单的C++程序是如此的快速,利用这个优势,继续我们的脚本探索。。。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11