西西河

主题:【原创】介绍一下Go语言(1)之前的话 -- zllwy

共:💬92 🌺231 新:
全看分页树展 · 主题 跟帖
家园 性能这个问题比较复杂

Go的性能理论上是接近C的。因为Go是直接compile的。但实际上的性能受到很多方面的影响:

1 compiler的实现。目前Go有两种compiler,Xg/Xl系列(X是数字代表architecture,目前支持x64,x32和arm,分别是6,8,5,g代表compiler,l代表linker,这套都是从plan 9来的),还有就是gccgo(gcc的frontend)。Xg/Xl系列编译非常非常快,这也是Go的一大特点,但优化相对就不够一点。gccgo编译慢,优化好,和C可以直接连,但还有一些feature没有实现(最终会一样)。Go team也考虑过LLVM,不过目前LLVM还是太庞大了。

2 库函数的实现。很多benchmark要进行公平比较的话,需要特殊优化的库函数实现。

3 GC。Go是garbage collected的语言。好处自不用说,但性能就很受GC的影响。目前的GC还是要stop the world,还不是很理想,新的GC正在实现中。

有的网站给出了对各种语言的benchmarking,结果对Go不是太好。不过其实很多是因为Go的库函数实现不够优化。比如有些benchmark中,C和python用的库都是有assembly优化的,但Go没有。

总体来说,Go的性能应该比C/C++差一点,毕竟是GC的。但应该不会比Java差。Go已经在Google内部用于某些production system了。实际表现如何,我还要在实际的project中看。有机会会来报告。

另外,python缩进问题,最大的问题是很多editor对于tab/space有不同解释。所以很多人一起工作的话,没有一个coding standard,就会一团糟。而这个问题完全是没有必要存在的。

Java的GUI难道大家不都用Eclipse的库了吗?自己的那套应该没人用了吧。Java目前更多是一种server language,desktop已经不是很时髦了。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河