ama*_*ion 13 java size applet jar java-web-start
我正在开发一个Java Applet,减少二进制代码的大小将使applet更快地打开并改善用户体验.
有什么办法可以减少类和/或jar文件的大小吗?我想确定我没有错过任何明显的技巧.
我知道在C++世界中,例如剥离调试符号的编译器选项可以产生巨大的差异,但我从来没有见过类似Java的东西.
Jon*_*eet 11
您可以使用
javac -g:none
Run Code Online (Sandbox Code Playgroud)
删除调试信息 - 我不知道它可能会有多大差异.
您是否确信下载时间是瓶颈?小程序有多大?除非它是巨大的,否则我怀疑它的大小在下载后会有很大的不同.
Chi*_*hii 11
查看此页面,了解有关如何使jar文件变小的一些提示 - http://wiki.java.net/bin/view/Games/4KGamesDesign.即使有些可能不适用,因为您没有尝试绝对最小化,但有一些常规提示可以应用而不会影响代码质量.
但总结如下:
将代码保持在一个级别.每个类都会增加JAR文件中条目的开销,以及全新的常量池和类列表.
保持您的方法最小化.每种方法都会增加类文件的开销.您需要的只是一种main()实现键盘和/或鼠标例程的方法和方法.
不要使用全局变量.全局变量需要类中的特殊元数据来识别.但是,方法局部变量只是堆栈条目,使用时不需要额外费用.
使用像7Zip或KZip这样的好压缩器来创建JAR文件.JAR实用程序主要是为了正确而非压缩比而设计的.
使用像ProGuard,JoGa或JShrink这样的混淆器来优化班级的大小.
对类文件名使用单个字符.这会在内部减小其大小,减少Zip程序存储的信息量,并减小清单的大小.
引用尽可能少的类.您引用的每个类都会添加完整的包和类名,以及您正在调用的方法签名.
冗余(例如对所有方法,类和字段使用相同的名称)可提高压缩率.
private和final的方法可以由类优化器内联.
使用该String.valueOf()方法将基元转换为字符串.例如,""+number扩展为:new StringBuffer?().append("").append(number).toString()在新类和方法引用中浪费大量空间.
源代码中使用的静态字符串,浮点数和整数存储在常量池中.因此,您可以重用静态值越多,您的班级就越小.
您可以自由地使用常量的静态最终变量.这将使您的代码更具可读性,ProGuard将对此进行优化,因此不会产生额外开销.
| 归档时间: |
|
| 查看次数: |
6494 次 |
| 最近记录: |