编译型语言快
⑴ 同样需要编译器为什么汇编语言比较快
绝大多数情况下,并不是。
事实上除了对CPU工作模式极端熟悉的人,一般人是很难用汇编写出更高效的代码的。
编译器虽然智商比不了人,但是它更精通优化。生成高效的代码需要透彻地掌握硬件的工作模式,每个细节都要考虑清楚。而且这很大程度上是软件更擅长但人并不擅长的繁重无脑又要求极高精确性的机械化工作。
当然专业搞优化的人还是能打败编译器的,因为编译器能做到的人终究还是可以做到。而人要比编译器聪明得多。编译器只能遵循一些规定好的模式进行优化,人可以创造编译器根本不知道的优化方法。某些逻辑靠编译器是没办法生成出来的,只能由人直接用汇编写。汇编语言虽然也要编译,但是一般会和机器指令直接对应,相当于要求CPU在细节上严格按人的思路工作,而高级语言并不能控制太多细节。
⑵ Lua到底有多快
但我还是对它的第三个优点最为在意。很多人都说Lua是目前世界上速度最快的脚本语言,那么Lua到底有多快?没有人拿出具体的数据来说明。没有比较就没有鉴别,所以我想亲自测试一下。下面是在同一台机器上分别用6种语言执行1亿次浮点运算的测试结果(1亿以内的所有整数开3次方并求和),有图为证:
测试说明:
1、一般来说,我们总是认为编译型语言要比解释型语言快,这里面delphi和易语言属于编译型语言,而VB有人认为只是伪编译而已,lua、vbs、vba都属于解释型语言,它们之间最有可比性。
2、从测试结果来看,在这几种语言中,Lua的运算速度仅次于delphi !而delhpi的编译速度、执行速度都是久负盛名的。
3、这里之所以把vba也算一个,是因为自从微软宣布停止对vb6的支持后,vb将死的说法一直不绝于耳。但是Office是微软的传家宝,一直在不断升级。office中与vb6同宗同源的vba自然不会被微软舍弃,网上有人从中提取出了可以独立安装的vba6.5和vba7.0,(office2003中的vba版本是6.0),我用vba6.0测试了一下,比vbs还要慢很多,而用vba7.0就快多了。真是个令人惊喜的意外发现!