为什么我得到一个" . lang。OutOfMemoryError" or "there is insufficient memory for the Java Runtime Environment to continue" when deploying a silent install using SCCM on a Windows 10 machine?

23日视图(30天)
当部署一个静默安装的MATLAB使用SCCM (ConfigMgr)在Windows 10机器,为什么我得到以下文本:
java.lang.OutOfMemoryError
#在那里是内存不足的Java运行时环境继续。
#本机内存分配失败(malloc)分配33952字节块::新
#可能的原因:
#系统的物理RAM或交换空间
#32位模式,进程大小限制被击中
#可能的金宝搏官方网站解决方案:
#减少内存系统上的负载
#增加物理内存和交换空间
#检查如果交换支持存储已满
#使用64位Java在64位操作系统
#减少Java堆大小(- xmx / xms)
#减少Java线程的数量
#减少Java线程堆栈大小(xss)
#更大的代码缓存- xx: ReservedCodeCacheSize =
#输出文件可能被截断或不完整。
#
#内存错误(allocation.cpp: 390)pid = 9848, tid x0000000000002d2c = 0
#
#JRE版本:Java (TM) SE运行时环境(8.0 _181-b13)(构建1.8.0_181-b13)
#JavaVM: Java HotSpot VM (TM) 64位服务器(25.181十三区最混合模式windows-amd64压缩哦)
#失败的编写核心转储。Minidumps不默认启用客户端版本的Windows

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2022年5月3日
这个内存错误可能发生当用户从ConfigMgr部署静默安装Windows 64位机器上安装程序是高度压缩的。
否定内存问题,检查复选框“运行安装和卸载程序作为32位进程64位客户”ConfigMgr对话框中设置。
这个选项允许用户安装MATLAB 64位电脑使用32位的线程。
2的评论
杰西废话
杰西废话 2020年8月10日
或有可能以某种方式解压安装程序,所以它没有做一个沉默的安装时这个问题?

登录置评。

答案(1)

polsky edd
polsky edd 2022年10月11日
增加堆大小是一个糟糕的解决方案,100%暂时的,因为你将遇到同样的问题如果你有多个并行请求或当你试图处理更大的文件。通常这是一个用Java运行时错误发生在你分配一个新对象在您的应用程序在一段时间内不断和垃圾收集器(GC)不能提供空间,以适应一个新对象,和堆不能进一步扩大,导致了这个错误。
因此你几乎有以下选项:
  • 找到内存泄漏的根源分析工具的帮助下垫、视觉VM, jconsole等等。一旦你找到问题的根源,你能解决这个内存泄漏。
  • 优化你的代码,所以它需要更少的内存,使用更少的大数据结构和摆脱对象不再在你的程序中使用。
为了避免 OutOfMemoryError 编写高性能的代码:
  • 尽可能使用本地变量。
  • 释放这些对象是你认为需要进一步。
  • 避免创建对象每次循环中。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!