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