![]() |
1
11
你可以使用
删除调试信息-我不知道它有多大的区别。 你有多确信下载时间是瓶颈?小程序有多大?除非它是巨大的,否则我怀疑下载后大小会有很大的不同。 |
![]() |
2
11
查看此页面,了解如何缩小JAR文件的一些技巧。- http://wiki.java.net/bin/view/Games/4KGamesDesign .尽管有些可能不适用,因为您不是在尝试绝对最小化,但有一些一般的提示,您可以应用而不影响代码质量。 但这里有一个总结: 把你的代码控制在一个类中。每个类都添加了JAR文件中一个条目的开销,以及一个全新的常量池和类列表。
尽量减少你的方法。每个方法都会在类文件中增加开销。你只需要一个
不要使用全局变量。全局变量需要类中的特殊元数据来标识。然而,方法局部变量只是堆栈项,使用起来不需要额外的费用。 使用一个好的压缩程序,如7zip或kzip来创建JAR文件。jar实用程序主要是为正确性而设计的,而不是为压缩比而设计的。 使用诸如proguard、joga或jshrink之类的模糊器来优化类的大小。 使用一个字符作为类文件名。这会在内部减小其大小,减少zip程序存储的信息量,并减小清单的大小。 尽可能少地引用类。您引用的每个类都添加了完整的包和类名,以及您正在调用的方法签名。 冗余(例如对所有方法、类和字段使用相同的名称)提高了压缩比。 私有方法和final方法可以由类优化器内联。
使用
源代码中使用的静态字符串、浮点数和整数存储在常量池中。因此,可以重用的静态值越多, 你的班级会更小。 您可以为常量自由地使用静态最终变量。这将使代码更具可读性,Proguard将对此进行优化,因此没有额外的开销。 |
![]() |
3
6
关于Proguard网站的报告显示了减少的例子,范围从19%到90%。 |
![]() |
4
3
Classdepandjar 在Jini世界中用于减小JAR文件的大小(Jini提供了许多远程代码,因此这一要求)。它删除了同一个jar中没有引用的类。 显然,这有一些例外(按名称加载的类等),因此您可以在配置中容纳这些例外。您应该最有可能对“动摇的”JAR进行测试,以确定相关的依赖关系仍然存在。 |
![]() |
5
3
改进小程序大小的一些建议:
|
![]() |
6
2
pack200 (和gzip)生成的文件比jars(有效的zip文件)小得多。 |
![]() |
7
1
试试这个工具。 http://proguard.sourceforge.net/ |
![]() |
8
1
据我所知,您不能从Java类文件中删除符号,但您 可以 缩短标识符。但是,这可能会使堆栈跟踪无效,所以我不提倡这样做。 但是,您可以无损地将文件大小减少 再压缩 您的.jar文件使用改进的deflate算法 AdvanceCOMP project (.jar存档文件只是普通的.zip文件)。 |
![]() |
9
0
您可以使用一个工具来应用代码混淆。这通常会缩小变量名和方法名,并显著减小类的大小。这通常在将代码部署到J2ME平台时完成。 |
![]() |
10
0
HTTP压缩通常只比JAR压缩消耗50%-80%的带宽,特别是当您创建了许多类(例如scala程序)时。 |
![]() |
11
-1
如果使用NetBeans,可以将构建脚本设置为在项目配置中生成压缩的JAR文件(在build->packaging下)。也许不如其他解决方案有效,但只剩下一个复选框了。:-) |
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |