我有一个软件设计模式的设计,用途是减轻垃圾回收的压力,能使得垃圾回收更加轻量和平滑,减少对内存的消耗和暂停时间。可用在支持分代垃圾回收器的语言,如 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
1
cannotagreemore 169 天前
这个和开发针对瓶颈自己优化代码的区别和优势是什么呢?
|
2
Ayanokouji 169 天前
和选择 zgc 有什么优势
|
3
iyiluo 169 天前
要重构源码,这有点 low 啊,妥妥的侵入操作
|
4
ncisoft OP |
6
Yanlongli 169 天前
围观大佬
|
7
yuk1no 169 天前 via iPhone
有 metric 对比看看吗?
|
8
ncisoft OP @Ayanokouji 不同层面的东西,也可以视为 zgc 的补充
|
10
iosyyy 169 天前
talk is easy
|
11
nothingistrue 169 天前
动源代码不动垃圾回收器或者 JVM ,我不信你真得能有提升。不上测试报告,只能假定你在瞎说。
|
12
rrfeng 169 天前
我觉得是吹牛逼。
|
13
ncisoft OP @nothingistrue 后续打算出一些软件的 benchmark ,会从 GitHub 上找,可能有 Elasticsearch ,拭目以待吧
|
14
NightFlame 169 天前
发点案例看看呢
|
15
ncisoft OP @NightFlame 还没有案例呢,我打算找一些释放出源代码的软件做对比测试,欢迎推荐
|
16
dabai0806 169 天前
设计模式重构代码优化 gc, 这对已有项目改造成本也太高了
而且我也不觉得设计模式优化 gc 是个靠谱的事 |
17
ncisoft OP |
18
52boobs 169 天前 via Android 1
talk is cheap,show me the code
|
19
cinlen 169 天前 2
benchmark 没出来就开始找商业合作了?
|
20
carity 169 天前
测试结果没有,应用案例没有,Demo 也没有,就找合作了?
|
21
Ericcccccccc 169 天前
G1 现在的 stw 应该完全够用了啊。
|
22
tianshuang 169 天前
世界首创?
|
23
xubeiyou 169 天前
talk is cheap,show me the code
|
24
ncisoft OP @tianshuang 在我有限的认知范围内,确信是世界首创,你在网上见识过类似的技术吗
|
25
ncisoft OP @Ericcccccccc 新版 idea 就是用的 g1 ,不卡顿吗
|
26
june4 169 天前
简单机械的话,不能让程序自动处理吗
|
28
546L5LiK6ZOt 169 天前 via iPhone
只要不 new 对象就不会有 gc ,log4j 和 disruptor 就有 gc free 的设计,op 也是类似思路?
|
29
ncisoft OP |
30
brant2ai 169 天前
这如果是真的,可能会把 Java 重新拉回宝座。话说你实际测试过没,有测试数据吗
|
31
ncisoft OP @brant2ai 过几天发测试数据,在寻找测试标的,只能找开放源代码的,可能会是 Elasticsearch ,Netbean/Eclipse 也是选项, 你有什么推荐吗?
|
32
cannotagreemore 169 天前 1
没有数据也没有 demo ,怎么看都有点民科的味道
|
33
ncisoft OP @cannotagreemore 我是学院路上 985 CS 毕业,有可能是民科?
|
35
otakustay 169 天前 1
约等于什么都没说就找**商务**合作感觉太激进了,可以附带一些典型 GC 测试场景、典型算法、典型 spring 服务下启用和没启用的 profiling 差异数据,一般商务使用一定是在有数据支撑的情况下才会展开的,不至于瞎来
|
36
dragonfsky1 169 天前
计算机也有民科了吗
|
37
Ashe007 169 天前 via iPhone 5
你咋不拿个图灵奖?世界首创,整个 Oracle 的程序员都没想出来,全世界苦于 GC 问题的公司没想出来,给你想出来了
|
38
Ericcccccccc 169 天前
@ncisoft 卡顿是 g1 造成的。新的 g1 回收,暂停时间 10ms 以内,你感觉卡顿是它造成的吗?
|
39
zjp 169 天前
请教 JAVA 现在是如何应对 GC stop-the-world 导致的服务暂停?
ncisoft · 2016-06-01 03:13:01 有几年没跟踪技术了,也不知道在内存越来越便宜、堆越来越大的今天,JAVA 有什么好的解决方案了吗?比如 G1 实际效果如何? 16 到现在才 8 年吧... |
40
idealcitier 169 天前
mark, 期待你的代码。
|
41
julyclyde 169 天前
现在卷 gc 还有意思么?
先不说现在对性能的追求已经超过人的实际需要了 单说大家都用 java8 ,你再改进有啥用? |
42
wxf666 169 天前
|
43
ncisoft OP @Ashe007 Sun JDK 团队本来就不怎么样,一直搞不清楚重点。你没做过突破天际的事情,不代表别人也做不到。
我发这个帖子,说明了存在这么一条 approach 。以中国人的做题能力,跟着抄作业也不是多难的事情。 |
44
ncisoft OP @Ericcccccccc 一知乎上大堆人有 64G 内存才用得起 idea ,不是 GC 问题还能是什么
|
48
ncisoft OP |
49
wszbdyyy 169 天前
给楼主提供一个新的商业化思路。
楼主可以将一些开源的,使用量大的软件或者类库,按照你的方案进行改造,生成“高性能”版本,然后直接卖。如果性能改进明显,相信是有市场的。 |
51
wszbdyyy 169 天前
GPL 不会影响你商业化,开源即可。
|
53
dragonfsky1 169 天前 via Android 3
都是开发,谁会相信这种天马行空的东西。计算机民科最难了,没代码没 demo 只能是笑话
|
54
cloudyplain 169 天前 via iPhone
minor gc 就高效吗? 大型业务项目 g1 经常 100-200ms 停顿,full gc 出现就是事故,profiling ?给 async profiler 贡献过代码吗? 这种哗众取宠的标题才是搞笑。
|
55
jdgui 169 天前
建议换个赛道,你说自己能够发明永动机比较现实。
|
56
mightybruce 169 天前
编故事编的不错,建议让 AI 修改修改一下, 这样故事更能打动人。
|
57
lindt99cocoa 169 天前
talk is cheap. show me the code
|
58
ncisoft OP |
59
ncisoft OP |
61
panlatent 169 天前 via Android 1
不懂 Java 也没深入研究过 GC 。不踩 OP ,但是我看过任何性能调优的文章和言论,好像都不是主题贴的风格。既没有简述原理,也没有列举数据,反而直接整了个商务合作。
既然依靠设计模式做性能优化,那么哪些客户需要性能?是多大群体?都要学习的你模式还需要重构核心代码?且你的模式是付费闭源,具体实施起来肯定困难重重。比如第三方库和包怎么办。 |
62
NickX 169 天前
talk is cheap. show me the code
|
64
nuk 169 天前
好奇原理是啥,直接标记分代数据吗
|
65
xue777hua 169 天前 via iPhone 3
在对冲基金做过高频交易 楼主说的方案 业界对 gc 敏感的一直都在这么做 而且都遵遵循类似的范式来尽量 minor gc 所以并不认为有多大市场。
也就是 不需要 gc 的不在乎这点 需要在乎 gc 的早就已经用那一套方法论在优化了 真正需要极致优化的 谁用 java 啊 c++真香 |
66
andytao 168 天前
别给 JAVA 整了,先给仓颉实现吧,借它的东风雄起。。。
|
67
kyuuseiryuu 168 天前 via iPhone 1
对于软件开发商来说,花钱买机器和花钱买你 GC 都是花钱。
买你的产品还多了修改代码的要求。改一次代码就要做一次回归测试,开发成本又在这里。不如花钱堆机器来得简单无脑成本低。 对于开发商的技术部门来说,如果需要修改代码,侵入性大,对整个系统架构有影响,太耦合了。 对于 toB 开发商的客户来说,他们拿不到源码,也用不上。 感觉目标客户范围很小呢。 |
68
windsage 168 天前
android 上的 cc 就是参考自 shenodoah gc ,在服务器上有 zgc ,停顿更少的,你要直接减少 gc ,编译成二进制不好么?干嘛套个虚拟机呢。
|
69
corcre 168 天前
@kyuuseiryuu 简单来说就是大客户用不上, 小客户用不起🐶
|
70
shawnsh 168 天前 via Android
追踪技术有 20 年了,你今年多大了
|
72
sagaxu 168 天前
盲猜是通过 proiling 找出长期生存对象,重构代码,不让它们辗转到老年代
|
74
LieEar 168 天前
有没有具体测试?你在这干聊谁会相信
|
76
ncisoft OP @kyuuseiryuu 我的方案其实可以理解为软件专利,没什么源代码的,只不过我没钱申请不起欧美专利
|
79
ThinkCat 168 天前 1
talk is cheap ,如果是作为商业机密,可以申请专利保护,如果是科研,可以出论文,如果只是验证,请出一下测试结果。我也有一套系统,完美解决了现代 IM 的所有难点和痛点,效率和安全性超过 tg ,且占用资源极低。一旦商业化,将对现有 IM 行业带来降维式的打击,如果想要合作,请私信联系我。
|
81
HojiOShi 168 天前 1
|
85
ncisoft OP @windsage 我都说了去看看 golang ,具体到 AMD64 Linux ,编译成二进制自然有虚拟机。Google 的工程师一定不是废材吧
|
87
Chinsung 168 天前 1
《他改变了 gc 》
|
88
ncisoft OP @HojiOShi 我最早接触 Java 还是 1.1 ,最开始关注 GC 调优是 1.4 ,你查查有没有 20 年,v 友们还真是无知呢
|
89
dragonfsky1 168 天前
吹了这么久还是无代码无 demo ,hhh
|
90
huangzhe8263 168 天前
好像知乎上天天看到你
转来 v2 了? |
91
minoic 168 天前
@ncisoft #85 go 有虚拟机? “It is important to understand, however, that Go’s runtime does not include a virtual machine, such as is provided by the Java runtime.” -- https://go.dev/doc/faq
|
92
ncisoft OP @huangzhe8263 跟你一样,两栖,我用 v 站比知乎要早,我在知乎没发过那么多帖子,不可能天天看到我
|
94
devliu1 168 天前 via Android
show me the paper
|
96
mightybruce 168 天前
当你说 golang 有虚拟机的时候, 我就绷不住了。
软件专利,你要笑掉大牙, 软件只有算法以及一些设计有专利这一说。 建议去医院看一下有没有问题。 |
97
ncisoft OP @devliu1 我在认真考虑是不是让给在美国当大学教授的大学同学发 paper ,都是上下铺重点,应该一个月内能有决定。据他说在美国,GC 是学术届的热门话题
|
99
635925926 168 天前
就这?我发明的算法,改进 java 之后,都不需要 gc 。
|