提高机器学习的JAVA程序的速度

时间:2011-10-11 07:56:47

标签: java operating-system nlp ram heap-memory

我正在使用GATE Learning在java中进行机器学习。我有一个庞大的文档数据集可供学习。在使用netbeans时,我遇到了java堆空间错误。所以我在-Xmx参数中提供了1600MB。现在,我没有得到堆空间错误,但它需要足够的时间来运行! (跑了90分钟,我不得不停止这个过程,因为我失去了耐心!)。

我不明白我是否应该增加我的RAM(目前为4GB)或升级我的操作系统(目前是XP SP3,我听过vista并赢得7更好地利用RAM和处理器)或升级我的处理器(目前是双核E5500 2.80 GHz) )?

请深入了解我可以做些什么来使这个过程更快地运行!

谢谢Rishabh

2 个答案:

答案 0 :(得分:1)

在你能够回答什么使它运行得更快之前,你必须找到瓶颈。

我对Windows不太熟悉,但有一些系统负载监控小部件,IIRC。

我会做的如下:

  • 创建一些不断增加的数据集(更多文档)
  • 针对这些数据集运行程序
  • 在每次运行时,计算出CPU是否超出,或者内存是否超出并开始交换,或者整个内容是否为IO绑定

然后修复造成问题的那个。

仅仅针对上下文,ML算法在大型数据集上运行需要很长时间并不常见。您可以使用上述方法绘制运行时间,因为输入数据集的大小会增加,至少您会知道您的程序是否会在100分钟或100个世纪内停止。

答案 1 :(得分:1)

获取诸如VisualVMYourKit之类的Profiler - 启动您的程序 - 将Profiler连接到正在运行的程序 - 找出哪些方法和对象是您的瓶颈 - 然后至少您知道在哪里开始改进你的计划。