分享测试一个虚拟机内存回收效率的方法(大家应该都会吧:):win 下使用 procgov 假装本机只有 100 mb 内存,再运行 gui 程序,测试卡不卡。
结果,javafx 卡成 ppt ,flutter 写的桌面 app 却依然流畅,几乎没有卡顿!(例子:dart 写的 myune_music 存在严重的内存泄漏,稍微切换内存狂飙 300mb+,然而限制 100mb 后,依然流畅,神奇吧!)
这说明 flutter / dart 的虚拟机比 java 更高级 —— 即使再内存泄露的情况下。
人才不断涌入新的领域,Java 已经成熟到可以封印起来装裱,成熟到可以使用 java8 一万年,新的改进似乎九牛一毛,再也不能从根本上提升。
但当我从 64 位的 java8 切换到 32 位的 java8 ,内存需求立马减半,即使限制 100mb 内存,也没有那么卡了。
这给我一点信心。我还是很喜欢 javafx ,也曾升级到新的 open jdk ,打包方式太复杂,而且几乎没有区别,尤其是浏览器内核,所以又回到 java8 并锁死。
那么,如何打包分享给其他用户呢?
搜遍全网,似乎没有好的方案?
这些方案的本质是启动器。因为 java 程序的本质就是调用上位开发者提供的虚拟机.exe 运行编译后的字节码。
那我自己写个启动器好了!编不了虚拟机,我还编不了启动器?小样,何须他人预制!
先说我自己如何自用一些 java 小工具的:使用 idea 编译后,写个 bat/AHK/Python 调用 java.exe 运行编译好的 class 。
那么我的启动器就可以封装这条启动指令。
图像( AHK 写的启动器 GUI ):

没有检测到 jvm 的时候,提供下载链接。启动成功后,保存快捷方式,就能直接运行 javaw.exe ,不再需要启动器,干掉中间层!
别人还在研究怎么使用他人预制的启动器.exe ,我已经干掉启动器了,启动器就是个跳板,用于导出快捷方式,也可以右键固定开始菜单,几乎没啥问题!
就用这个方法发布些小工具吧,让 Java 再次伟大,从占领小工具 && 小游戏开始!


