MATLAB社区

MATLAB、社区及更多

控制Java堆大小

当您从MATLAB创建Java对象时,该对象将驻留在Java堆中,而工作区变量将进入MATLAB的主内存。Java堆空间还与MATLAB用户界面组件共享,如图形、桌面和编辑器。在下面的示例中,您可以看到java变量没有列出大小,青年成就组织:

free = java.lang. runtime . getrtime . freememory ja(1,1,1) = java.lang.Double(23);whos free = java.lang. runtime . getrtime . freememory . whos free = java.lang. runtime . getrtime . freememory . whos free =
free=33760000名称大小字节类属性free 1x1 8 double ja 1x1 java.lang.double[]free=33736872

Java可用内存总量是在MATLAB启动时设置的,不能在运行时更改。但是,可以使用以下命令查询此值:

max=java.lang.Runtime.getRuntime.maxMemory
最大值=130875392

不久前写的关于MATLAB如何管理其Java内存(包括最大堆大小、当前堆大小和可用内存之间的区别)。当时(MATLAB R2009a)唯一可以通过创建java.opts启动目录中的文件,以使用JVM标志设置此值。在需要更多可用内存的情况下(通常是在处理Java密集型工具箱或管理大量非常大的文件时),我们在MATLAB R2010a中简化了使用偏好:文件->首选项->常规->Java堆内存。您不再需要担心直接设置JVM标志。

MATLAB Java堆大小首选项

如果您应该耗尽Java内存,只需来到这个对话框,并将滑块向右移动。然后必须重新启动MATLAB才能使设置生效。请注意,默认堆设置和最大堆设置因平台和处理器字大小而异。

我不知道我的读者(除了一般的MATLAB用户)的人口统计数据,但如果你是我这一代的人,也许你还记得《Fraggle Rock》?每当我听到“堆”这个词,我就忍不住想起这部剧的“垃圾堆”。如果你有两分钟可以浪费,这是YouTube视频的堆。

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。