如何提高java项目的性能?

时间:2012-01-24 07:34:33

标签: java performance mongodb jfreechart

我在MongoDB中拥有超过20M的数据,并且通过使用java驱动程序,我尝试使用JFreeChart来获取数据和绘图。

我有简单的主类从MongoDb读取数据,创建数据集和绘制图表。当我在PC(3GB Ram,i5处理器)中运行程序时,它执行速度非常慢。在10小时内它只执行200K数据。然后我尝试在具有24 GB RAM的IBM服务器中运行代码,但性能相同。

这是我运行的命令:

java -cp my-program.jar:external1.jar:external2:jar Graph

服务器上不应该快吗?我怎样才能提高性能?

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。它与Java无关,问题是由Jfreechart引起的。

我正在对MongoDB上的数据进行排序,并将数据添加到XYSeries以创建数据集。 XYSeries在构造函数中有autoSort字段,默认情况下为true。这意味着当您向数据集添加新项目时,它会检查系列中的项目是否已排序。通过将其设置为false可以提高性能。

XYSeries series = new XYSeries("followersCount",false);

其次,我在add method中将notify设置为false。如果未将其设置为false,则会向所有已注册的侦听器发送通知,从而降低性能。

series.add(1,2000,false);

答案 1 :(得分:0)

好像你正处于部署阶段。因此,如果您有一个将在服务器上运行的Web应用程序,那么您不应该只运行该应用程序。 (。罐) 应创建Web应用程序存档(.war)并将其安装到您的容器(Tomcat,Glassfish,Weblogic等)。 执行这些操作后,如果您仍然遇到性能问题,则表明您的代码/逻辑存在问题。