java – 为什么我的.jar文件比eclipse中的程序运行得慢?

我有一个 java程序,它从数据库中读取大量输入数据,对其进行操作,然后将数据写回另一个数据库(使用ODBC驱动程序,excel和访问数据库,在新的 Windows 7机器上).该程序从eclipse运行大约需要17分钟,但是当我创建一个可执行的.jar文件时,它需要额外的10分钟才能运行(总共27分钟).

到目前为止,我发现慢速jar文件(通过搜索SO和谷歌)的两个原因是它们被压缩,并且写入命令提示符(或错误日志)比在eclipse中的控制台需要更长的时间.我尝试创建一个未压缩的jar文件,它只加速了大约10秒钟(这可能是完全随机的,因为运行时间大约相差30秒).我在程序中只有大约10个System.out.println()命令,因此不应该减慢它的速度.

关于是什么导致它运行得如此之慢的任何想法,如果有任何方法我可以再次加速?如果有任何其他可能相关的细节我应该包括在内,请告诉我.谢谢!

解决方法

使用 JAMon.
它是一个监控库,可以帮助您测量代码的执行时间.

在向方法添加一些监视代码之后,在Eclipse中运行它并作为JAR文件,并比较结果.这应该允许您缩小搜索范围.

另外:检查您是否使用与Eclipse相同的Java版本运行JAR文件(例如,Java 1.4.x可能比1.6.x慢得多).

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...