最近在知乎上看到一篇文章,通过计算累加来测试python和go的性能:
然后得出了如下结论:
解释性语言和编译性语言对于上述代码的处理完全就是两种方式。
GO是编译性语言,编译器碰到类似上述已知数据、已知循环次数的时候,就会优化成计算公式进行计算了,根本就不会走迭代循环的过程!!!
而python是解释性语言,上述代码是个迭代器,会一次一次的累加进行循环执行!,差个200倍很正常!
这也是为什么使用python进行大数据或者科学计算的时候要使用numpy库,因为numpy的底层执行是用C/C++/Fortran这些编译性语言来执行的!
其实大多数程序员接触的应用场景下,使用语言不同导致的性能差距都是微乎其微的!
而很多情况,真正出现了性能差异,更多的是代码写的Low而已。与其研究语言性能差多少,不如多花些功夫去学习!!!