【问题标题】:Go language benchmarks?Go 语言基准测试?
【发布时间】:2010-12-16 00:44:36
【问题描述】:

我看到 Go 在速度上应该几乎可以与 C 相媲美的说法,但是是否有任何可用的基准?

【问题讨论】:

    标签: benchmarking go


    【解决方案1】:

    Go 被添加到Computer Language Benchmarks Game。与 C++ 相比,它还有一段路要走。

    2009 年 11 月:

    2011 年 10 月:

    【讨论】:

    • 你是个程序员!你不认为我们如何编写程序很重要吗? reddit.com/r/programming/comments/a3yaq/…
    • 你说得对,最后一句应该是“比较起来……走吧,基准测试还有一段路要走”。所以我很期待学习如何加速基准测试和一般的 Go 程序。
    • 哇,在短短一年内,性能有了相当大的提升!
    【解决方案2】:

    发行版中有一个基准文件夹。查看$GOROOT/test/bench

    【讨论】:

    【解决方案3】:

    文档很轻,充满了“也许有一天我们会 X”和“关注这个空间以获取更多信息”。 Go 页面将语言参考列为最佳的单一信息来源,对我来说这是婴儿语言。我怀疑是否有任何已发布的基准。

    【讨论】:

      【解决方案4】:

      我编写了一个 GenPrime 的 Go 端口(可在我的项目分支 here 中获得)。我发布了我收到的结果(与 C 版本相比)on this topic at Ferrous Moon。尽管我的 Go 移植使用浮点数学与整数数学,但结果令人印象深刻。

      【讨论】:

        【解决方案5】:

        Profiling Go Programs 讨论了 Robert Hundt 的 C++/Scala/Go 基准测试,还清楚地解释了如何调整 Go 应用程序的性能。这是一个单一的程序基准测试,但值得一读以了解工具对性能调整的支持水平,结果表明它在 Hundt 选择的这个特定问题上与 C++ 具有竞争力。

        【讨论】:

          【解决方案6】:

          请记住,GC 是一个简单的标记清除实现。我不明白的是,为什么 Go 不使用 LLVM 编译器工具链?

          【讨论】:

          • 我不知道这有多有效,但FAQ 说:“我们也考虑过将 LLVM 用于 6g,但我们觉得它太大而且速度太慢,无法满足我们的性能目标。”
          • @Alexei 据我所知,“太慢”的目标是编译速度,这是 Go 的主要目标之一。
          猜你喜欢
          • 2018-09-09
          • 1970-01-01
          • 1970-01-01
          • 2011-03-28
          • 2020-07-24
          • 2022-01-06
          • 2017-09-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多