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

对垃圾回收器的改进方案

  •  
  •   ncisoft · 96 天前 via iPhone · 10686 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个软件设计模式的设计,用途是减轻垃圾回收的压力,能使得垃圾回收更加轻量和平滑,减少对内存的消耗和暂停时间。可用在支持分代垃圾回收器的语言,如 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

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

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

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

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

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

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

    还是有其他什么表现呢?

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

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

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

    凶不凶的,那你是怎么说我的?
    xue777hua
        136
    xue777hua  
       94 天前
    @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
       94 天前 via iPhone
    @xue777hua 謝謝您的建議
    ncisoft
        138
    ncisoft  
    OP
       94 天前 via iPhone
    @xue777hua

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

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

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

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

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

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

    下面评论的其他人不了解,虽然我司是真的潜在用户之一,我们就是典型的大内存低延迟,但不会选择你的方案。
    devliu1
        142
    devliu1  
       94 天前 via Android
    你 idea 如果可以的话,先发 arxiv 占坑也行。
    ncisoft
        143
    ncisoft  
    OP
       93 天前 via iPhone
    @xue777hua GraalVM 既然是娘胎自带 GC ,那怎么会和我的方案存在竞争关系呢,为何还要跟它的生态竞争?难道不是相辅相成关系吗?你的评论我是没看懂
    ychost
        144
    ychost  
       81 天前
    java GC 还好吧,多加点机器的事情,机器成本不高
    main1234
        145
    main1234  
       74 天前
    所以这么多天了,还是没有发测试报告么
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:53 · PVG 15:53 · LAX 00:53 · JFK 03:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.