Re: [請益] C/C++ 做server的優勢??

作者: snaketsai (さいでんし)   2017-12-17 13:27:17
看到有人提到GC跟Java
稍微聊一下之前看到的東西
沒打算解釋GC的運作原理
有興趣可以買Richard Jonse的 GC handbook
或著《垃圾回收的算法與實現》
(這本是日本人寫的,若水堂買得到簡體翻譯)
目前市面上有兩個聲勢比較大,號稱"pauseless"的Java GC
一個是Red Hat的 Shenandoah:
https://dl.acm.org/citation.cfm?id=2972210
https://wiki.openjdk.java.net/display/shenandoah/Main
一個是 Azul的 C4:
https://dl.acm.org/citation.cfm?id=1993491
然而跟「無糖飲料」其實是「每一百毫升糖含量小於零點五克」
這樣的概念類似,"pauseless"是相對過去而言pause次數非常少的意思
再者,pauseless也不是有了就像喝了蠻牛
因為不用stop-the-world休息就順順順,從此電爆別人
根據Christine Flood在2017年的演講:
https://youtu.be/AAiB3fDwyRM?t=8m45s
在她自己的Elasticsearch的benchmark,
其實還比現在的OpenJDK開成default的G1慢一點點
那是因為,為了減少VM pause次數
資料結構有引進indirect pointer
導致reference的速度有下降
這點他們還在想辦法優化中
(不過後面LRU test時,Shenandoah有比較快一點)
另外一個問題是Shenandoah目前還沒被正式收錄,
只有fedora跟RHEL的repo有編進去
要用需在跑java時多下參數:
-XX:+UseShenandoahGC
至於用其他Linux distro的,就得自己按照上面wiki的教學自己編了
Azul Zing VM的C4由於是closed source,我沒什麼太大的興趣去關注
據說有開放給開源專案的人去申請免費評估版本:
https://www.azul.com/zing-oss-open-source-developer-access/
板面上如果有什麼大開源計畫的main developers,搞不好可以丟個信問問看
我比較有印象的是:
他們一開始的作法需要特製化的Linux Kernel、以及一些特殊硬體支援
後來好像變成可以傳軟體、沒改過的Linux了
但是至於效果如何,就沒研究了(伸手黨求第一手benchmark數據)
作者: pttuser (pttuser)   2017-12-17 18:12:00
不錯喔,推
作者: lukelove (午睡)   2017-12-24 19:16:00
清流

Links booklink

Contact Us: admin [ a t ] ucptt.com