2014-01-14 55 views
2

簡介:我最近一直在研究一個相當繁重的計算JAVA程序(ODE​​求解器和數值優化)。我已經實現了多線程,並且很快就可以訪問大學的一個「大型」服務器來測試程序的性能。我已經創建了一個.jar文件的程序,但我不執行這個.jar文件。相反,我使用MATLAB JVM環境來使用JAVA中的特定類,直接從MATLAB執行。原因是MATLAB有非常酷的圖形功能。當前執行方法的如何從MATLAB中執行時爲JAVA程序分配更多內存?

描述:正如所描述的程序在下面的方式從MATLAB直接執行:

clear all 
javaaddpath('..\binJava\MyFile.jar') 
import functionality.*; 
import domain.*; 

我開始導入文件和以後加載文件中的包(其中,所有我的代碼謊言)。 在這裏,我簡單地執行:

myClass.execute(myInput); 

問題:我怎樣才能改變從MATLAB Java程序的RAM分配?

由於實現多線程已經並將加速計算工作,我想確保一旦借用服務器RAM不會成爲瓶頸。我想使內存調整非常友好的用戶友好,這樣我就可以直接從matlab調整ram用法到java代碼,以利用服務器的能力。

Litteratur survery: 總之文學家我在哪裏能找到主要集中於在任蝕(或不同enviroments)或的使用增加RAM的選項執行從終端.jar文件時(這是不是我的情況)。

最後的備註:我甚至不確定內存分配將成爲一個問題,一旦我從服務器執行。硬件本身可能會控制這一點。我不知道 - 請與我分享您的想法和意見。 謝謝!

回答

0

你只需要設置-Xmx命令行選項來分配更多的內存。

似乎是一個很好的回答了這個位置:

http://www.mathworks.com/matlabcentral/answers/92813

  1. 創建java.opts文件:

創建一個文本文件中指定的java.opts $ MATLABROOT/bin/$ ARCH目錄。 $ MATLABROOT是MATLAB根目錄和$ ARCH是你的系統架構,您可以通過在MATLAB命令提示符下鍵入發現:

再往:

用戶可通過設置它們覆蓋這些值手動在一個java.opts文件中。例如,在java中包含以下行。OPTS文件的最大堆大小值設置爲256 MB:

有關1.2.2 JVM和以後,把你的java.opts文件中的以下內容:

-Xmx256m

+1

這是完美的 - 顯然MATLAB允許你在首選項中進行調整,以及Preferences-> MATLAB-> General - >'Java堆內存首選項'。謝謝蒂姆! – SteewDK