编绎和优化,脚本代码小米加步枪赶超英法美

编程达人:冰冻牡蛎 测试,总结》》

今有空,继续看了一下竹笋大师几天前提出的“使用for循环查找10亿内可被7整除的数的个数”的题目(相关文件:群文件 10亿以内多少个数字可以整除7.7z )

1. 论输出的exe大小,purebasic最小;其它编译器输出的exe比它大, 甚至大很多——毫无疑问,大家知道我是说GO。工具/语言nelua(使用的是扩展版的lua语言)、shedskin(使用的是python的子集)、nim、freebasic、purebasic、rapideuphoria都是借助gcc;所以,“都是借助GCC,没有可比性”就是胡扯

2. 同是输出C之后、再调用gcc编译为exe,工具/语言nelua(使用的是扩展版的lua语言)、shedskin(使用的是python的子集)、nim、freebasic1.09、rapideuphoria产生的exe,与C版本的速度一致;但是purebasic速度慢得多(耗时是前排队友的17倍)。所以,“都是借助GCC,没有可比性”就是胡扯——还都是上班呢,马云那么多钱,我却是个穷屌丝

编绎和优化,脚本代码小米加步枪赶超英法美_第1张图片

3.  对于freeebasic,1.09版本消耗的时间,是1.06版本的1/2

4.  对于purebasic,5.73和6.02版本消耗的时间大致一样

5. purebasic版本耗时,与freepascal版本接近;比freepascal版本略微慢一点

6. 对于脚本,官方lua版本速度,至少是官方python版本的2.8倍

7. 对于脚本,pypy版本速度,是luajit版本的1.2-3倍

8. purebasic/freepascal版本速度是luajit/pypy的3-5倍

9. 同为pascal系,PascalABC.NET版本速度,是freepascal版本的7.5倍以上

10. 同是.NET上的语言,可以输出.NET的exe,PascalABC.NET版本速度,是 IronPython版本的30倍~几百倍

11. 同是.NET、且可以输出.NET的exe的语言,PascalABC.NET版本只输出一个exe,可以直接发布到有.NET Framework的电脑上运行;但是IronPython版本输出的exe,依赖好几个DLL

12. 多数语言的耗时,是随着查找范围增大,而大致线性增加——这符合预期。但是,这里中出了3个叛徒
12.1 对于luajit,20亿的速度比10亿、30亿都多得多
12.2 官方python的速度,随数字增大,耗时多得可怕
12.3 对于Ironpython,随数字增大,耗时多得可怕,且不是简单线性

你可能感兴趣的:(编绎优化,脚本语言,.NET优化,JS,python)