手头问题:
我有一个java应用程序,它在DEV和QA服务器上运行的时间是在本地计算机上运行的时间的两倍。在Dev和QA上运行作业时,我得到的时间大约是1:45–2:30(hh:m m),而本地的时间大约是0:45–1:10。我试图确定是什么导致服务器上java应用程序的性能降低。
到目前为止,我所调查的一切都没有提供答案:
使用相同的最大堆大小进行测试
观察cpu的压力。Dev在运行批处理应用程序时大约有75%的时间处于空闲状态,所以我认为这不是问题。
在Dev.Dev上观察ram有足够的内存为JVM提供指定的maxHeap(128mb)。如果我理解正确的话,只要机器能提供最大堆大小,机器的可用内存就不重要了,对吧?
确保java版本不会导致此问题。
设置日志级别相同:“信息”
处理器:服务器有2.67GHz处理器我的本地只有2.19GHz
其他信息。
服务器操作系统:Linux
本地计算机操作系统:Windows
单线程Java应用程序。
应用程序正在读取和写入文本文件,并且还具有调用
到数据库(hibernate c3p0)。这些是我最昂贵的手术
我已经搜索了几十个网站,以确定根本原因,但我还无法确定是什么造成的问题,任何帮助将是非常感谢。
最佳答案
应用程序正在读取和写入文本文件,还调用了数据库(hibernate c3p0)。这些是我最昂贵的手术
很可能您的服务器对它正在使用的数据库的访问速度较慢。如果你要在同一台机器上运行数据库,它可能比通过网络运行要快得多。我将查看在本地和服务器上执行一些简单的hibernate操作所需的时间。如果性能是一个问题,我建议考虑删除hibernate,甚至你的数据库,你的程序可以运行10倍-100倍的速度。