【问题标题】:Can some one explain the architecture of GO lang, Is it faster compared to Nodejs & if so what makes it faster [closed]有人能解释一下 GO lang 的架构吗,它比 Nodejs 更快吗?如果是的话,是什么让它更快[关闭]
【发布时间】:2015-02-02 19:29:59
【问题描述】:

有人能解释一下 GO 语言的架构吗,它比 Nodejs 更快吗?如果是的话,是什么让它更快,Go 是使用 C/C++ 开发的,那么,与 C/C++ 相比,GO 的性能是否胜出? C/C++ 和 Go 之间的唯一区别是更多的功能让开发人员更容易使用 GO 进行编码吗?

【问题讨论】:

    标签: node.js go


    【解决方案1】:

    请注意,Go 1.5 的编译器、汇编器、链接器和运行时将完全用 Go 编写。

    我们的目标是让 Go 完全用 Go 编写,并消除代码库中的任何 C 代码。 C code is for Cgo 的唯一例外。

    (见Go 1.5 Bootstrap plan

    速度更多的是关于生成的本机代码和语言的简单性(没有通用性意味着需要跟踪的动态数据更少)

    Go 并不总是很快:“Why is go language so slow?”。
    它逐步改进,特别是在垃圾收集方面,stack management side


    Uvelichitel 下面提到x64 Ubuntu : Intel® Q6600® one core -- Computer Language Benchmarks Game


    至于“Golang 架构”,这里并不适用(详见in this answer):

    Go 没有像 Java JVM 这样的虚拟机。它像 c/c++ 一样直接编译成金属。

    Go 1.3 Linker overhaul 提到:

    当前链接器执行两个可分离的任务。

    • 首先,它将伪指令的输入流与重定位列表一起转换为可执行代码和数据块。
    • 其次,它会删除死代码,将剩下的内容合并到一个图像中,解决重定位问题,并生成一些完整的程序数据结构,例如 runtime symbol table

    【讨论】:

    • 你见过任何严重的 Go 与 V8/Node 基准测试吗?出于某种原因,“语言枪战”项目不包含 JS。
    • @Not_a_Golfer 不,我没有。我只知道性能只是切换到 Go 时的因素之一(如thenewstack.io/…
    • AVonC,关于 GO 语言架构的任何想法
    • @Not_a_Golfer 似乎“语言大战”项目确实包含 JavaScript V8。
    • 哦,找到了。我正在查看 x64-quad 核心,显然它没有 v8 基准。 benchmarksgame.alioth.debian.org/u64/…
    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2011-02-06
    • 2015-05-30
    • 2014-03-17
    • 2016-05-19
    相关资源
    最近更新 更多