我在使用Java调用MATLAB JA Builder编译代码时遇到了一个奇怪的问题。详情如下:
load()
load()
函数成功有谁知道会发生什么?
我附加了堆栈跟踪的一部分:
??? Error using ==> load Out of memory. Type HELP MEMORY for your options. ... Matlab M-code Stack Trace ... file C:\Users\HiME\AppData\Local\MathWorks\mcr_cache_v78\fileProcesso_39586D5669D9A968B2CD5231A43620E4\fileProcesso\getHeaders.m,name getHeaders,line at 8. com.mathworks.toolbox.javabuilder.MWException: Error using ==> load Out of memory. Type HELP MEMORY for your options.Error in =>getHeaders.m at 8
答案 0 :(得分:0)
尝试设置-Xmx lower 。
在常规的Matlab进程中,内存在用于Java对象的Java堆和Matlab M数据结构可用的其他内存之间分配,例如该负载的结果。使Java堆更大可以调整分界线,从本机代码和Matlab的GC中取出内存,并将其提供给Java。基本上,Java堆和Matlab堆正在争夺内存。在JA Builder库中运行的JVM可能以相同的方式工作。
检查您在Eclipse下运行的堆大小,并将其与Java应用程序正常运行的方式进行比较,并尝试减少Java堆大小,以便为Matlab堆保留更多内存。