从MATLAB执行时如何为JAVA程序分配更多内存?

时间:2014-01-14 10:21:09

标签: java multithreading matlab memory-management

简介:我最近一直在研究一个相当繁重的计算JAVA程序(ODE​​求解器和数值优化)。我已经实现了多线程,很快就可以访问大学里一个相当“大”的服务器来测试程序的性能。我已将程序创建为.jar文件,但我不执行此.jar文件。相反,我使用MATLAB JVM环境来使用JAVA中的特定类,直接从MATLAB执行。原因是MATLAB具有如此酷的图形功能。

当前执行方法的描述:如上所述,程序直接从MATLAB执行,方式如下:

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

我开始导入文件,然后在文件中加载包(我的所有代码都在其中)。 从这里我只需执行:

myClass.execute(myInput);

问题: 如何从MATLAB更改java程序中的ram分配?

由于实现多线程已经并且将加速计算工作,我想确保一旦我借用服务器RAM就不会成为瓶颈。我想让RAM调整非常用户友好,这样我就可以直接从matlab调整ram使用到java代码,以便利用服务器的强大功能。

Litteratur survery: 简而言之,我认为能够找到主要关注使用Eclipse(或不同环境)或从终端执行.jar文件时增加RAM的选项(对我来说不是这种情况)的文书工作者。

最后评论:我甚至不确定一旦从服务器执行内存分配就会成为一个问题。硬件本身可能会控制它。我不知道 - 请与我分享您的想法和意见。 谢谢!

1 个答案:

答案 0 :(得分:0)

您只需设置-Xmx命令行选项即可分配更多内存。

这里似乎有一个很好的答案:

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

  
      
  1. 创建java.opts文件:
  2.         

    在$ MATLABROOT / bin / $ ARCH目录中创建一个名为java.opts的文本文件。 $ MATLABROOT是MATLAB根目录,$ ARCH是您的系统架构,可以通过在MATLAB命令提示符下输入找到:

然后再往下走:

  

用户可以通过在java.opts文件中手动设置来覆盖这些值。例如,在java.opts文件中包含以下行将Max Heap Size值设置为256 MB:

     

对于1.2.2及更高版本的JVM,请将以下内容放在java.opts文件中:

     

-Xmx256m