abb*_*abb 16
我的感觉是,将One-Jar的表现称为糟糕和糟糕的表现是不公正的.对于中等大小的应用程序,可以预期启动将花费几秒钟(尽管不会影响JVM启动画面).对于大多数环境,除了嵌入式系统之外,几十兆字节的内存开销可以忽略不计.此外,One-Jar能够自动将一些文件提取到文件系统,从而节省了在我的情况下开发安装程序的需要.
下面是尝试量化One-Jar对我的应用程序引入的性能影响.它是基于Swing的GUI应用程序,由使用ProGuard 4.5b2混淆的352个类组成.One-Jar 0.96用于捆绑产生的类,其中包含12MB的库(ODFDOM,Saxon HE,Xerces,Jaxen,VLDocking,Apache Commons等).我比较了混淆jar的性能和One-Jar处理的同一个jar.
上面的时间是通过在从Linux shell启动JVM之前,在main()方法的开头和我的应用程序窗口的windowOpened()事件处理程序中获取时间戳获得的.测量是在速度不是特别快的D820笔记本电脑上进行的,双核1GHz CPU和运行Ubuntu 8.04的2G或RAM.
希望能帮助到你.
dfa*_*dfa 13
我使用maven程序集插件与jar-with-dependencies描述符
使用好的旧Ant:只需使用zipgroupfilesetAnt Zip任务
<zip destfile="out.jar">
<zipgroupfileset dir="lib" includes="*.jar"/>
</zip>
Run Code Online (Sandbox Code Playgroud)
这将使所有包含的jar库内容变得扁平化.
小智 6
One-JAR在启动时将所有依赖项jar加载到内存中.这可能听起来非常低效,但自2004年发布以来,没有人向我抱怨它.预加载的可能影响是应用程序的类加载的整体加速,因为类加载器不必重复扫描类路径对于应用程序运行的资源和类:所有内容都是哈希映射的.
构建一个可以按需加载的延迟加载器非常简单:但我是学校里面说的"构建它,测量它,改进它 - 如果有必要的话",到目前为止还没有必要改进它.
我将在未来的版本中考虑到这一点(或者如果其他人想要解决它,那也会很棒,因为没有非常大的应用程序来衡量,很难知道改变是否有改进).
| 归档时间: |
|
| 查看次数: |
15102 次 |
| 最近记录: |