Tag:

如何在批处理模式下运行matlab时增加java堆内存大小

我在我所的一个集中式集群(linux)上运行了一个使用12个处理器的并行matlab代码。 代码运行良好,但无法打印Excel文件。 我正在使用xlwrite函数并在工作目录中具有所有相关的文件夹和文件。 我得到的错误是 “使用org.apache.poi.xssf.usermodel.XSSFCell / setCellValue发生错误发生Javaexception:java.lang.OutOfMemoryError:超出GC开销限制 我怎样才能改变堆内存? 生成的每个excel文件(预期的)有45000行和6列,包含整数以及浮点数据。 (我在整个代码中使用xlwrite函数四次)代码中使用的input数据variables大小为22MB。 在一台有32GB内存的Windows机器上运行完全相同的代码。 但是我失去了访问权限,因此需要知道如何在Linux机器上运行它。 在服务器上提交作业的cmd文件是: #!/bin/bash #@ output = test.out #@ error = test.err #@ job_type = MPICH #@ node = 1 #@ tasks_per_node = 16 #@ class = Medium128 #@ environment = COPY_ALL #@ queue Jobid=`echo $LOADL_STEP_ID | cut -f 6 -d .` tmpdir=$HOME/scratch/job$Jobid mkdir -p […]

Java的Apache POI

我正在从excel文档中读取数据,每两周更新大约50,000行数据,在开始新表之前可能会达到约12万。 我正在使用Apache POI来获取数据。 我在下面得到这个例外,但我相信最重要的一个例外是由:java.lang.OutOfMemoryError:Java堆空间。 我已经testing了我的代码,使用更less的数据在不同的Excel表单上,并且能够读取数据。 如果您有任何关于如何阅读大型Excel文档的方法或build议,请分享。 org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62) at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:456) at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:461) at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:461) at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:461) at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:271) at excelreader.readExcelFile(excelreader.java:28) at excelreader.main(excelreader.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60) … 13 more Caused […]

Excel POI 3.5 WorkBook Java堆空间exception?

我正在使用最新的POI 3.5读取Excel。 我已经安装了Excel MS Office 2007,并为此poi提供了执行数据的XSSF。 对于15000行数据,它正在正确执行,但是当超出限制直到30000或100000或200000时,它很容易出现Java堆空间exception。 代码如下: UATinput = new FileInputStream(UATFilePath); uatBufferedInputStream = new BufferedInputStream(UATinput); UATworkbook = new XSSFWorkbook(uatBufferedInputStream); 我在Java堆大小的最后一行中得到exception。 我已经使用-Xms256m -Xmx1536m增加了大小,但是仍然为更多的数据提供了Java堆空间exception。 任何人都可以帮我解决这个XSSFWorbookexception吗?