天空之城Top
deepin
2025-07-17 23:25 richie696:
我简单扫了一眼就已经发现了好几个问题:
- 你FrameNum可能会有计数器BUG;
- 当一个便签页的文本非常大的时候你通过一个content来保存大文本,不管你用JDK21的ZGC还是G1,你这个用来保存大文本的content变量所在的内存空间,一定是Humongous Ragion中,当标签页特别多的时候,你大概率会出现OOM的异常,你浪费内存的地方远不止文本处理,这就是为什么我说你应该使用享元模式来处理文本编辑的原因;
- WindowsManager当中的openFrames不应该用ArrayList,多线程下会有并发问题,可以考虑使用CopyOnWriteArrayList,或者给该变量的访问加锁
- 在窗口销毁的时候没有移除掉对应的监听器,这可能造成内存泄露
- 当开启多窗口的时候你的内存使用会呈现线性增长,开的越多内存占用越大,虽然JVM会给你分配一个内存占用上限,但是也会导致频繁的FullGC,JDK21的ZGC进行内存性能回收的STW提升目的只是想要给用户更好的体验,而不是让我们来浪费内存的
- 你的在打包的时候应该没配置分代ZGC,21中分代ZGC默认是未启用的。
目前我已经在帮你着手修改代码了,后面我会提交一个commit上去。
大佬太棒啦,最近工作比较忙,有段时间没优化了,后面我会多多向大佬学习的
Reply Like 0 View the author
做这个工具的目的是我在工作中经常会有比较多的任务要做,非常影响我写代码,因此做了个简单的工具,功能非常简单,帮我记录待办事项。
📝 ToDo 桌面清单
🧰 技术栈
📦 运行环境要求
🖼️ 截图预览