core链上怎么提币 Net Core已经开源好几年了, 为什么不像JVM那样很多人研究和调优其GC算法?
Net Core已经开源好几年了, 为什么不像JVM那样很多人研究和调优其GC算法?
优化肯定是需要的,再好的程序都是有优化空间的。只是现在dotnet平台上目前缺少大型的应用。正常的业务场景下,难以达到框架性能的瓶颈。
dotnet 虽然开源了,但是开源太晚。要是早几年,在Android兴起之前,在大数据兴起之前,现在还会是这般场景吗。眼看着**的大企业一波波地转向了Java和其他语言,作为一名dotnet程序员心里是大大的不甘心。
dotnet 在语言层面相比 Java 有太多优势,Java 新版新增的一些语言特性也都是照抄的 dotnet。但即便是这样,依然是叫好不叫座。
开源太晚,错过了几波行业发展红利。以至于现在,大数据领域缺 Hadoop,搜索领域缺 Elasticsearch ,移动端虽有xamarin,但依然是鸡肋般的存在。要是有这些杀手级应用在,dotnet 生态肯定会繁荣起来,向着更强的方向优化。
还能说什么呢,只能期望即将到来的dotnet 5 能一统现在混乱的局面,发挥好自己的特长,繁荣dotnet的生态环境。
.net core,哪里还需要什么GC优化?那是jvm天生缺陷导致的问题。.net 5再性能上更进一步,只要你的程序不是写得稀烂,根本不用操心底层运行时的性能会出问题。
不能用jvm的眼光看.net,java界已经进入固步自封的状态,版本更新那么快,实质性的东西并没有什么突破。而很多公司坚守在java1.6上不放手,实在顽固。
这和**的开发环境有很大关系。
一方面,这里有个路径依赖的问题,这个问题在**尤为突出。这几年,**其他语言的开发者多一些,生态好一些,转换则意味着成本。
另一方面,浮躁之风过盛,拿来主义盛行。这里举两个例子来说明。一个是国产操作系统的内核问题。为什么要使用linux内核而不是重新写一个呢?给出的理由无非是linux生态好,稳定,没有必要进行重复制作。真的没必要吗?那国外为什么流行要用rust重新写几个,而且开源呢?“没必要”是假,“不想”才是真,毕竟基础建设周期长,成本高,没有拿来主义好呀。另一个例子是最近matlab在**停止授权的事情。在这件事情上,很多人都觉得问题不大,问题不大的原因在于还有一个开源的scilab可以拿来用。
举这两个例子,也许不太妥切,但是,管中窥豹,略见一斑,也足以说明时下的浮躁氛围了。
既然这里说到net core底层问题,今年新出的《.NET Core底层入门》,也许值得一读。这是**的研究者写的,从中可以看出**在这方面的进展,也说不定。总而言之,虽然net core已经开源了几年,但是在**,开发者的成长和生态的建设,还需要更长的时间。
不只是netcore,golang,rust等等很多语言都没有好多人研究gc,所以这个问题应该问,为什么jvm会有很多人研究。
简单的回答是,jvm的历史负担太沉重,Java社区对jvm的改进**的保守,新的特性必须要保持向下兼容,导致只能从gc入手优化性能。而netcore不一样,微软主导的netcore社区对clr的改进激进的多,新特性很**况下是不会向下兼容的,性能优化可以在clr中解决掉,自然就不会过多关注gc了