.Net Core已經開源好幾年了, 為什麼不像JVM那樣很多人研究和調優其GC演算法?
沒人答我就不答了,結果又有人開始胡說八道了,我還是要說,人家百億資料量用著。net(知名快遞行業),也沒聽說。net的gc有效能問題需要啥調優,你說沒大型專案。
簡單說。net core也有servergc切換,這個切換的是gc原理性的演算法,而jvm的調優內容其實很死板很無聊,完全是因為他gc的適應性太差才需要調的,所以不具有普適性,。net這點本事還是有的,而且。net的gc控制還取決於你寫的程式碼,因為有值型別,stackalloc,span memory,ref等最佳化神器啊啊,這最佳化不比jvm那些無聊的引數強多了。
。net的gc適應性更強,而記憶體gc的相關調優能最佳化到很細緻,這些最佳化就直接把java甩開幾條街了。
所以我就是看不起java還得搞什麼jvm調優,還是面試必考內容,可笑。
補充一點,jvm還是很強的,吐槽的只是某些方面
不建議給我這個抖機靈的回答點贊。不過我確實覺得java坑太多了。神煩。 作為一個長期Java碼農, 我是個徹底的 Java 黑
原文
負責 jvm 的同事(是內部魔改jvm的團隊)是這麼跟我說的,巨硬那邊沒什麼好最佳化,是 JVM 太挫了。
補充說明
請看 R 大 的解釋: 為什麼聽說過 JVM 調優,卻沒聽說過 CLR 調優? - RednaxelaFX的回答 - 知乎
https://www。
zhihu。com/question/5290
0051/answer/132583244
就我個人的感受吧
為什麼jvm需要調優?還不是因為引數是啟動就寫死了,沒辦法執行時調整策略。在g1之前都沒有自適應的策略。(然而g1fullgc會把heap區打爆你見識過沒…)。
hotspot GC方面確實有待改進。:) ,不過要承認oracle 開始幹活趕上來就是了。
正常的處理問題流程是,出現問題,解決問題。
如果沒有出現問題那麼自然就不需要解決。
放到這個問題裡,就是jvm因為自身的不足,需要使用者手動調優,而netcore沒有這個問題,所以不需要。
不過這顯然不是題主想聽到的答案,看了題主在各個回答下面跟答主抬槓,無非是想證明netcore是因為沒人用,人氣不行,討論少,所以沒人為他調優=巨硬技術不行。
如果已經有了這樣一個先入為主的預設答案時候,也聽不進別的答案了。
那索性按照題主的期望來回答:少有人調優是因為netcore技術太爛沒人用,jvm宇宙第一。
深有體會,
幹了10年。net沒有關心過gc。
應公司需求,轉到java,2年就遇到gc調優問題了。
我還能說啥?怪jvm的gc不行?
算了吧,領導不會聽,自己背鍋。
不談情懷,不談背景,不談發展,。Net Core本身在GC是非常優秀的,要說演算法沒人研究,可能是你沒看到。韻達用的就是。Net Core,跟韻達研究院的幾位骨幹也聊過,在GC這塊兒Core表現的非常優秀~
如果你是真的關注。Net Core的GC這塊兒,可以看看Kawaii在部落格園的入門系列,裡面有CLR Core的原始碼解讀。如果有興趣深入探討,可以私信我,我有一波影片,對比解讀CLR和CLR Core裡的GC回收。