V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ncisoft
V2EX  ›  Java

对垃圾回收器的改进方案

  •  
  •   ncisoft · 6 天前 via iPhone · 8010 次点击

    我有一个软件设计模式的设计,用途是减轻垃圾回收的压力,能使得垃圾回收更加轻量和平滑,减少对内存的消耗和暂停时间。可用在支持分代垃圾回收器的语言,如 Java c# nodejs golang Lua 5.4 。

    我追踪研究此项技术有 20 年了吧,在我有限的认知范围内,确信是世界首创。

    主要目标市场将会是 Java ,现在工业界的 Java 实例对内存和 GC 的消耗很惊人,已经出现 TB 级的工业实践,业界最领先的 JVM 实现是 Azul C4 商业软件,官方宣称能在 1-8TB 堆上达到无暂停。JVM 厂商这几年一直在努力推进垃圾回收器的实现。这是 JVM 行业解决该问题的主要技术途径。而我的方案则是一个完全不同的设计方法。

    我构想的技术实现方式,可以做到以 Java OOP 方式开发系统,达到或接近函数式编程语言的垃圾回收表现,而无需转换到 JVM 平台上的 Scala 函数式语言:尽量交给 MINOR GC 来回收垃圾,更少的 FULL GC 。而现代 JVM 从 CMS 开始,MINOR GC 就已经极为高效。

    在 Java 的使用上相当简单,依据一个开发范式,通过 profiling 工具找出关键方法,对这部分代码进行简单重构,就可以把既有代码转换成对 GC 友好的应用。不仅可以用在 Java backend ,同样可以用于安卓 APP 。

    有別于借助 JVM 垃圾回收器的改进提升,我的方案明显更可控可预测,同时成本也更低。

    欢迎开发人员、软件外包公司、中小企业、各用 Java 支持业务系统的公司、安卓开发公司接洽商业合作,详情请联系李先生 leeygx#gmail.com

    143 条回复    2024-06-28 16:56:53 +08:00
    1  2  
    ncisoft
        101
    ncisoft  
    OP
       5 天前 via iPhone
    @635925926 祝财源广进
    tuokamuta
        102
    tuokamuta  
       5 天前
    Talk is cheap.
    tuokamuta
        103
    tuokamuta  
       5 天前
    “可以做到以 Java OOP 方式开发系统,达到或接近函数式编程语言的垃圾回收表现,而无需转换到 JVM 平台上的 Scala 函数式语言”

    有没可能有能力的公司直接就用 Scala 重构,小公司没必要关注 GC ?
    ncisoft
        104
    ncisoft  
    OP
       5 天前 via iPhone
    @tuokamuta 多一些选择不是更好吗?有 Azul C4 珠玉在前,我不也端出了新的方案?

    如果能接受引入一门新的 Scala 语言,那当然很好,LinkedIn 就是 Scala Java 双修

    https://www.quora.com/Is-LinkedIn-getting-rid-of-Scala
    otakustay
        105
    otakustay  
       5 天前
    @ncisoft #60 你懂就把数据端上来,别搁这手舞足蹈瞎 BB
    ncisoft
        106
    ncisoft  
    OP
       5 天前 via iPhone
    @otakustay 越催越慢
    v2orz
        107
    v2orz  
       5 天前
    mark 一下,没看到具体测试数据或者代码前,先不急着下结论
    BeijingBaby
        108
    BeijingBaby  
       5 天前   ❤️ 2
    改进 java gc 最好的办法就是不用 java
    Daniel17
        109
    Daniel17  
       5 天前
    围观
    lrvy
        110
    lrvy  
       5 天前
    talk is cheap, show me the code
    ccpp132
        111
    ccpp132  
       5 天前   ❤️ 4
    想了 20 年都没测试过数据吗

    老哥你的研究方式还有很多提升空间
    mrzhu
        112
    mrzhu  
       5 天前
    Talk is cheap. Show me the code
    janus77
        113
    janus77  
       5 天前
    看起来好像东西都没出来呢,就开始招商了吗。。
    不过我插句嘴啊,虽然这是世界首创,那有没有两种可能:
    1. 大厂内部有这块的研究了,只是初步尝试后发现性能实际上并不行,所以放弃了
    2. 你能做出来,但是初版性能很差,后期光靠你一个人的力量也达不到商用的标准(简言之就是友商的东西比你更好用),那也没法做商业化
    ncisoft
        114
    ncisoft  
    OP
       5 天前 via iPhone
    @ccpp132 你没学过现代科学的奠基石-公理系统?跟我扯犊子研究方式呢
    brucedone
        115
    brucedone  
       5 天前
    我有一个 ppt 系列?你倒是提供可复测的环境,数据,实验结论啊?
    wxf666
        116
    wxf666  
       5 天前
    @ncisoft #48 经你改造的 Idea 、PyCharm 社区版,预计有多少提升呢?

    内存少 20% 占用,性能提升 20%?

    还是有其他什么表现呢?

    ncisoft
        117
    ncisoft  
    OP
       5 天前 via iPhone
    @brucedone 等几天,会发布的
    mark2025
        118
    mark2025  
       5 天前
    可以先申请专利吧
    ncisoft
        119
    ncisoft  
    OP
       5 天前 via iPhone
    @mark2025 找人去打听过了,美国专利办下来很贵,我负担不起。专利申请至少也要覆盖北美欧洲澳日韩才有意义
    giiiiiithub
        120
    giiiiiithub  
       5 天前
    验证 demo 出来了踢我
    ncisoft
        121
    ncisoft  
    OP
       5 天前 via iPhone
    @giiiiiithub 不会有 demo ,只会有对比测试代码和数据
    xibeifeng
        122
    xibeifeng  
       5 天前
    任何事情都是有代价,它不会平白无故消失,只会转移
    otakustay
        123
    otakustay  
       5 天前
    @ncisoft #106 倒也没关系,毕竟我不怎么关心,慢一点我也喜闻乐见
    sunzhenyucn
        124
    sunzhenyucn  
       5 天前
    talk is cheap. show me the code
    Tomatopotato
        125
    Tomatopotato  
       5 天前
    我看你的行文方式很像民科,但是看你写的内容又很专业。

    你如果真的有东西,也别跟人争论了。。建议是直接整点可见的结果。
    powerman
        126
    powerman  
       5 天前
    @xue777hua #65 确实,目前 Java 看不到需要 极致低延时的场景,有这个需求,直接上 C/C++了,不需要在 Java 上搞这个,另外,都找人搞 ,机器相比人工 太便宜了,便宜到真的,随便开掉一个 Java 开发,就能上十几台机器
    grzhan
        127
    grzhan  
       5 天前
    paper 也好 benchmark 也好,有数据和方案的话也可以同步发到 hacker news 讨论
    meilicat
        128
    meilicat  
       5 天前
    talk is cheap. show me the code
    InkStone
        129
    InkStone  
       5 天前
    单就 OP 提的这个方案,看起来应用价值不大

    对代码进行重构的代价,写代码本身只占很小的一部分,代码重构后的测试、发布流程才是大头。
    如果我都能接受对代码进行重构了,其实用 Go 、Rust 之类的语言把热点重写一遍,内存占用就会显著下降了(身边挺多这样的实践);但如果我没打算进行大规模重构,那单改一块热点代码来适配 GC ,除非收益真的特别大,不然很难想象这样的技术改造能通过评审……
    ncisoft
        130
    ncisoft  
    OP
       5 天前 via iPhone
    @InkStone 尊重你的意见
    ncisoft
        131
    ncisoft  
    OP
       5 天前 via iPhone
    @powerman 意思是 Azul 可以关门了呗^_^
    eisuto
        132
    eisuto  
       5 天前
    蹲一下测试数据
    ncisoft
        133
    ncisoft  
    OP
       5 天前 via iPhone
    @janus77 Regarding 你说的第一种可能,那些大厂为什么不公开发表博客或 Paper ,给自己 PR 一波不香吗?毕竟大厂自己已经用不上了
    ccpp132
        134
    ccpp132  
       5 天前
    @ncisoft 不用这么凶吧,公理系统不是数学吗,和现代科学有啥关系啊。
    ncisoft
        135
    ncisoft  
    OP
       4 天前 via iPhone
    @ccpp132 你回学校去请教老师吧,公理系统是现代科学的基石,我说的,看他反不反对

    凶不凶的,那你是怎么说我的?
    xue777hua
        136
    xue777hua  
       3 天前
    @ncisoft 别改造 Idea 、PyCharm 了 没意义。甚至都不会有人鸟你。
    你如果真的想做事,想好自己的竞争对手:
    1. 是那些 AOT 的 JVM 如 GraalVM 。但这些 AOT 的 JVM 经过数年发展,生态已经逐渐完善了。你掂量下自己多久能追上人家的生态。
    2. 可能才是 Azul 。如果你真的把他们当作竞争对手,那就不要搞什么 Idea 、PyCharm 这种没用又无聊的东西。从 HBase/SparkSQL 开始搞起来,内存直接干到 10TB ,跑 benchmark ,然后发论文。

    否则在这扯淡,你真以为赚钱是大风刮来的?在这打算是吸引小公司 CTO ?为了替换自家免费的 PyCharm 和 IntelliJ Community 用你的收费的一个 GC 算法?这不是搞笑么?
    ncisoft
        137
    ncisoft  
    OP
       3 天前 via iPhone
    @xue777hua 謝謝您的建議
    ncisoft
        138
    ncisoft  
    OP
       3 天前 via iPhone
    @xue777hua

    纠正你的一个认知盲区,GraalVM 并没有因为 AOT 就没有垃圾回收问题了。Unity 的 IL2CPP 也是如此。详情见官网介绍。所以并不是我的竞争对手,赛道不一样。

    https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/MemoryManagement/
    flyqie
        139
    flyqie  
       3 天前 via Android
    有些不解,如您所说,您在技术社区的活跃时间不短,那么该帖子为什么没有发布任何的评测数据,反而最后着重于洽谈商业合作?

    我入行时间比您短的多,但据我所见,技术社区似乎并不欢迎这种模式,您作为前辈对这点应该是了解的吧,特别还是您这种底层优化方案。

    其次,您既然提到了您的方案更加有优势,那么是您怎么得出的结果呢,看您的帖子和回复似乎一直说过一阵子再发。

    我相信您的履历,但目前光凭该帖子还是感觉有点难以完全信服,期待您能尽快给出相应的评测数据。
    ncisoft
        140
    ncisoft  
    OP
       3 天前 via iPhone
    @flyqie 我不是不想尽快端出对比测试报告,奈何现在是残血状态,真是急不来。有满血我,现在连满血时的一成工作效率都没有~
    xue777hua
        141
    xue777hua  
       3 天前
    @ncisoft 我没有说 GraalVM 由于 AOT 解决垃圾回收问题。不知道你哪里听出来的,甚至直接判断是知识盲区。

    本想继续给你从商业角度提醒更多的用户场景,但是觉得没必要了。

    下面评论的其他人不了解,虽然我司是真的潜在用户之一,我们就是典型的大内存低延迟,但不会选择你的方案。
    devliu1
        142
    devliu1  
       3 天前 via Android
    你 idea 如果可以的话,先发 arxiv 占坑也行。
    ncisoft
        143
    ncisoft  
    OP
       3 天前 via iPhone
    @xue777hua GraalVM 既然是娘胎自带 GC ,那怎么会和我的方案存在竞争关系呢,为何还要跟它的生态竞争?难道不是相辅相成关系吗?你的评论我是没看懂
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2816 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:11 · PVG 21:11 · LAX 06:11 · JFK 09:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.