Net Core开源好几年了,为什么不像JVM一样多的人去研究和调优它的GC算法呢?

我们已经推出了几个。net核心项目,基本都是docker+。网芯2/3。老实说,

的GC。net core很优秀,基本上不需要像做Java时那样做大量的优化。所以正常学习的人不多。换句话说,如果一个GC需要大量的优化,它肯定不是一个好的GC。当然,平时编程的时候,常见的非托管对象处理等等都要掌握。

这和国内的发展环境有很大关系。

一方面,有一个路径依赖的问题,这个问题在中国尤为突出。这几年国内其他语言的开发者比较多,生态也比较好。转化就意味着成本。

另一方面,浮躁之风太强,功利主义盛行。这里举两个例子来说明。一个是国产操作系统的内核问题。为什么要用linux内核而不是重写?给出的理由无非是linux有一个很好很稳定的生态,没必要复制。真的没有必要吗?那为什么国外流行用rust和开源重写几个?“不必要”是假,“不想”是真。毕竟基础设施建设周期长,成本高,还不如借款。再比如最近matlab在中国被暂停授权。这件事很多人觉得问题不大,问题不大的原因是有开源的scilab可以用。

这两个例子可能不太恰当,但管中窥豹,足以说明当下的浮躁风气。

既然说的是网芯底层问题,那么今年新出的网芯底层介绍或许值得一读。这是国内研究人员写的,从中可以看出国内在这方面的进展,也许。总之,虽然网芯已经开源了几年,但是在中国的开发者成长和生态建设还需要很长的时间。

因为没必要,所以java就像个半成品,不管是不是语法编译器。如果没有春天系列,估计那些996早就变成007了。

微软的产品化能力有目共睹。net比JAVA系统更完善,包括产品本身和后期维护,不如用。商业项目的. net平台。

这看起来很正常,就像它收购GitHub后,很多开源项目纷纷迁移GH一样。开源社区普遍不信任微软,其意义肯定不在开源本身。的市场份额。Net开源也在走下坡路,没有人真的想用。

Net core,需要什么GC优化?那就是jvm固有缺陷导致的问题。Net 5在性能上更进一步,只要你的程序写得不差,就不用担心底层运行时的性能。

你不能看。从jvm的角度来看。java世界进入了自满状态,版本更新如此之快,没有实质性的东西突破。而且很多公司都坚持java1.6,真的很顽固。

优化肯定是需要的,再好的程序也有优化的空间。只是dotnet平台上缺少大规模的应用。在正常的业务场景中,很难达到框架性能的瓶颈。

Dotnet是开源的,但为时已晚。如果几年前,在Android兴起之前,在大数据兴起之前,还会是这样吗?看到国内大型企业一波一波转向Java等语言,作为一个dotnet程序员,我是大大的不甘心。

Dotnet在语言层面比Java有很多优势,Java的一些新的语言特性也是抄袭dotnet的。但即便如此,这仍然是一个很好的选择。

开源太晚,错过了几波行业发展红利。所以现在大数据领域缺少Hadoop,搜索领域缺少Elasticsearch。虽然移动端有xamarin,但还是鸡肋。如果有这些杀手级应用,dotnet生态一定会繁荣起来,朝着更强的方向优化。

我能说什么呢?只能希望即将到来的dotnet 5能统一现在混乱的局面,发挥自己的特长,繁荣dotnet的生态环境。

首先,原始的GC的。网一直都不错。流畅到足以支持3D游戏开发。所以几乎不需要调优。知道文章用多了不一定是好事。95%的技术文章其实只是为了解决一个BUG。其次,C#的语法和运行时设计都不错,对GC的压力也小很多。例如,范式支持基本类型,因此像List这样的结构是作为一个整体来分配和释放的。青蛙需要打开每一个元素。慢到死,对于GC来说,也是更多的引用链。此外,C#还支持SIMD数据类型,如matrx4x4。提高运行速度,减少GC也是好事。

这些东西已经优化得很好了,程序员不需要再关注,让程序员更专注于业务实现。

与java相比。netcore更优雅,更高级,更完善,不需要关注相对低级的东西。

很简单:没有关键业务在net core上运行。

曾经,京东商业用的。net,但是过了几年,都改成Java了。这足以说明问题。

像胡志这样的小工厂开始使用python,当业务量增加时,他们改用golang而不是net core。这就足以说明问题了。

有人说netcore有多好,不需要你自己去优化。其实根本没到极限,还没到优化的时候。