Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提高java项目性能?_Java_Performance_Mongodb_Jfreechart - Fatal编程技术网

如何提高java项目性能?

如何提高java项目性能?,java,performance,mongodb,jfreechart,Java,Performance,Mongodb,Jfreechart,我在MongoDB中有超过2000万的数据,通过使用java驱动程序,我尝试使用JFreeChart获取数据并绘制图表 我有一个简单的主类,它从MongoDb读取数据,创建数据集并绘制图表。当我在PC(3GB Ram,i5处理器)上运行程序时,它的执行速度非常慢。在10小时内,它只执行200K数据。然后我尝试在IBM服务器上用24GB Ram运行代码,但性能相同 这是我运行的命令: java-cp my program.jar:external1.jar:external2:jar图 服务器上的

我在MongoDB中有超过2000万的数据,通过使用java驱动程序,我尝试使用JFreeChart获取数据并绘制图表

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

这是我运行的命令:

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


服务器上的速度不是很快吗?如何提高性能?

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

看起来您正处于部署步骤。因此,如果您有一个将在服务器上运行的web应用程序,那么您不应该只运行该应用程序。(.jar) 应创建Web应用程序归档(.war)并将其安装到容器(Tomcat、Glassfish、Weblogic等)中。
完成这些操作后,如果仍然存在性能问题,则表明代码/逻辑存在问题。

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

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

XYSeries series = new XYSeries("followersCount",false);
series.add(1,2000,false);
第二,我将通知设置为false。如果未将其设置为false,则会向所有注册的侦听器发送通知,从而降低性能

XYSeries series = new XYSeries("followersCount",false);
series.add(1,2000,false);

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

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

XYSeries series = new XYSeries("followersCount",false);
series.add(1,2000,false);
第二,我将通知设置为false。如果未将其设置为false,则会向所有注册的侦听器发送通知,从而降低性能

XYSeries series = new XYSeries("followersCount",false);
series.add(1,2000,false);

你试过给Java一些内存吗?
-Xmx
-Xms
选项值得一看。有什么花哨的数学吗?我在几秒钟内绘制了20万个数据点的图表……您知道性能差的原因了吗?如果您只是查询数据并将其扔掉以隔离数据检索性能,是否仍需要同样长的时间?您是否分析了您的应用程序?您应该能够在几分之一秒内处理200000个点,具体取决于您所做的工作。您是否正在将所有数据加载到内存中进行处理?您应该能够执行一个很好的组查询或映射reduce,以便将数据摘要抓取到您的Java应用程序中?
-Xmx
-Xms
选项值得一看。有什么花哨的数学吗?我在几秒钟内绘制了20万个数据点的图表……您知道性能差的原因了吗?如果您只是查询数据并将其扔掉以隔离数据检索性能,是否仍需要同样长的时间?您是否分析了您的应用程序?您应该能够在几分之一秒内处理200000个点,具体取决于您所做的工作。您是否正在将所有数据加载到内存中进行处理?您应该能够执行一个很好的组查询或映射reduce,以便将数据摘要抓取到Java应用程序中。