[翻译]Go与C#的比较,第二篇:垃圾回收

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[翻译]Go与C#的比较,第二篇:垃圾回收相关的知识,希望对你有一定的参考价值。

Go vs C#, part 2: Garbage Collection | by Alex Yakunin | ServiceTitan — Titan Tech | Medium


目录

  • 译者注

  • 什么是垃圾回收?

  • 什么是GCBurn?

    • 峰值分配吞吐量("速度测试")

    • GCBurn 测试

  • GC Burn测试结果

  • 结论

    • .NET Core

    • Go

    • 两者的相同点

  • 免责声明和后记


译者注

本文90%通过机器翻译,另外10%译者按照自己的理解进行翻译,和原文相比有所删减,可能与原文并不是一一对应,但是意思基本一致。

这是Alex Yakunin大佬关于Go和C#比较的第二篇文章,本文发表于2018年9月,当时使用的.NET Core版本应该是2.1,Go版本应该是1.11版本。而现在.NET版本已经到6 Pre5,Go也到了1.16,经过这么多版本的迭代,Go和.NET的GC性能都有很大提高,所以数据仅供参考,当然也欢迎大家能在新的版本上跑一下最新的结果发一篇帖子出来。

译者水平有限,如果错漏欢迎批评指正

译者@Bing Translator、@InCerry,另外感谢@晓青、@贾佬、@晓晨、@黑洞、@maaserwen、@帅张、@3wlinecode、@huchenhao百忙之中抽出时间帮忙review和检查错误。

原文链接:https://medium.com/servicetitan-engineering/go-vs-c-part-2-garbage-collection-9384677f86f1


这一个系列中还有其他两篇文章:

  • 第一篇:Goroutines vs Async-Await 【中文翻译版】

  • 第三篇:Compiler, Runtime, Type System, Modules, and Everything Else. 【中文翻译版】

有趣的是,这篇文章的草稿是几个月前写的,而且比较短。它的主要内容是。"Go的GC显然比.NET的差,请看下面的帖子。1, 2, 3, 4(注意,其中有些是最近的),以了解详情"。

但是......我还是想让自己以某种方式测试这个问题,所以我请我的一个朋友 - Go专家帮我做这个基准测试。我们写了GCBurn,一个相对简单的垃圾收集和内存分配基准,目前支持Go和C#,尽管你可以自由地把它移植到任何其他有GC的语言上。

现在,让我们进入森林吧

以上是关于[翻译]Go与C#的比较,第二篇:垃圾回收的主要内容,如果未能解决你的问题,请参考以下文章

[翻译]Go与C#的比较,第二篇:垃圾回收

JVM 垃圾回收时间点和垃圾收集器

浅析C#中的托管非托管堆栈与垃圾回收

浅析C#中的托管非托管堆栈与垃圾回收

Jvm垃圾回收器(终结篇)

Java中的垃圾回收算法详解