Java 为什么我的程序在服务器上运行得比本地慢?

Java 为什么我的程序在服务器上运行得比本地慢?,java,eclipse,windows,performance,solaris,Java,Eclipse,Windows,Performance,Solaris,我有一个java程序,可以从数据库读取数据,处理数据并将其写入csv文件。写入的数据可能相当大(2个文件约为600 MB,总容量通常约为1.5 GB,分为16个文件) 当我用eclipse(Windows7)运行程序时,大约需要1小时 当我在服务器上部署程序时,需要3.5个小时 在这两种情况下,使用的数据库是相同的 这是否意味着我可以排除数据库是问题的根源 如果是这样,是什么导致执行时间的增加 eclipse中的JVM参数:Java7,-Xms1200m,我有4GB的RAM solaris中的J

我有一个java程序,可以从数据库读取数据,处理数据并将其写入csv文件。写入的数据可能相当大(2个文件约为600 MB,总容量通常约为1.5 GB,分为16个文件)

当我用eclipse(Windows7)运行程序时,大约需要1小时

当我在服务器上部署程序时,需要3.5个小时

在这两种情况下,使用的数据库是相同的

这是否意味着我可以排除数据库是问题的根源

如果是这样,是什么导致执行时间的增加

eclipse中的JVM参数:Java7,-Xms1200m,我有4GB的RAM

solaris中的JVM参数:Java6,-Xms2048M-Xmx3072M,我有256GB的RAM,通常有60GB的空闲内存

评论回复:

@Jordi Castilla:嗯,我已经运行过top命令好几次了,可用内存总是至少60 GB。但我不确定

@Pradeep Sekar,@dasblinkenlight:我该如何检查

@jwenting:没有SSD,只有普通的旧硬盘

@真怀疑论者:你是什么意思?在与我运行程序的服务器相同的服务器上

@德拉赞·博扎诺维奇:还没有,因为事实证明,安装插件、软件、工具在我的公司中是不标准的(而且评测工具还没有得到批准),既困难又漫长

@安德鲁·亨勒:

r/s     w/s     kr/s    kw/s    wait    actv    wsvc_t  asvc_t  %w  %b  device
1.6     6.5     47.9    207.6   0.0     0.0     0.8     2.5     0   1   risuatfs01-nfs:/RISUATAP01/ACF

我有256 GB的RAM,通常有60 GB的空闲内存。这是真的吗?这可能是由于服务器和数据库之间的连接时间。您的本地计算机可能比服务器有更好的数据库连接连接时间。服务器可以通过不同的网络路径访问数据库,在这种情况下,延迟可能会降低您的性能。它还可能使其网络容量达到最大,在这种情况下,带宽会降低您的性能。您是否在本地使用SSD和服务器上的硬盘驱动器?性能上的另一个大区别是,数据库是否运行在同一台服务器上?