作者snaketsai (さいでんし)
看板Soft_Job
标题Re: [请益] C/C++ 做server的优势??
时间Sun Dec 17 13:27:17 2017
看到有人提到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数据)
--
Linux is the bone of my world.
Kernel is mybody, and initramfs is myblood,
have created over a thousand Distros.
Unknown to impossibility.
Nor known to limitation.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.167.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1513488451.A.3AB.html
※ 编辑: snaketsai (140.113.167.181), 12/17/2017 13:37:45
1F:→ pttuser: 不错喔,推 12/17 18:12
2F:推 lukelove: 清流 12/24 19:16