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 […]

内存不足错误VBA – Excel

以下代码块中出现内存不足错误。 有没有人看到明显的原因为什么? 编辑代码显示整个块。 最终这将循环通过一个目录,但直到工作,我只会看一个文件。 Sub Get_BT_Data() Dim fNameAndPath, data As Variant Dim j, c, r As Integer fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSM), *.XLSM", Title:="Select File To Be Opened") If fNameAndPath = False Then Exit Sub Workbooks.Open Filename:=fNameAndPath Sheets("Summary For CDP").Activate j = Range("A2").Value c = Range("B2").Value data = Range("DataRay") ThisWorkbook.Activate r = Cells(7, 4).End(xlDown).Row For […]

MemoryError使用openpyxl写入500k +行

我有一个脚本,它使用openpyxl打开一个模板xlsx文件,然后跨越六个工作表中的每一个,添加脚本中早先生成的列表中的一些数据,并更改单元格的格式。 我遇到的问题是,在一张纸上,我需要写9列和500k +行,这给我一个MemoryError 。 Traceback (most recent call last): File "C:\python27\labs\labs\sqrdist\new_main_ui.py", line 667, in request_and_send_reports x = sqr_pull.main() File "C:\Python27\lib\site-packages\memory_profiler-0.32-py2.7.egg\memory_profiler.py", line 801, in wrapper val = prof(func)(*args, **kwargs) File "C:\Python27\lib\site-packages\memory_profiler-0.32-py2.7.egg\memory_profiler.py", line 445, in f result = func(*args, **kwds) File "C:\python27\labs\labs\sqrdist\sqr_pull.py", line 327, in main os.remove(temp_attach_filepath) File "build\bdist.win32\egg\openpyxl\workbook\workbook.py", line 281, in save File "build\bdist.win32\egg\openpyxl\writer\excel.py", line 214, […]

内存不足第二次运行

当我尝试从CSV文件加载大型数组时,会发生意想不到的事情。 该文件有100000行和100列(80MB)。 我尝试了很多方法来快速加载CSV(因为速度是本质的)。 下面的代码第一次运行良好,但是当我第二次运行它时,variablestitle(String)或者redim arrRaw(Variant)给出了“内存不足”的错误。 重新启动Excel后,它再次正常工作。 它们都是本地声明的variables。 我试图使用公开声明,然后擦除arrays,但这个diddent工作。 我的系统显示RAM内存没有问题。 有没有解决这个问题的方法? Open filepath For Binary Access Read As #i Get #i, , res Close i title = Split(Right(Left(res, Len(res) – 1), Len(Left(res, Len(res) – 1)) – 1), vbLf) columnsArr = UBound(Split(title(1), ";")) rowsArr = UBound(title) ReDim arrRaw(1 To rowsArr, 1 To columnsArr) Call timerClock(True) For i […]

build立excel文件让内存脱离例外

我需要从ado.net datatable(我通过db查询得到)出口大量的数据,以优秀。 我尝试了以下方法:1.用工作簿/工作表@服务器端创buildexcel对象…并使用内存stream将整个文档写入客户端。 但是这给了我“内存exception”。 bcoz我的记忆stream是如此巨大。 所以我用一种新的方式replace了它 – 如下所示: 将数据表中的每一行都作为一个昏迷分隔的string写到客户端。 所以,当我们得到每一行…我们可以写到客户端..没有内存使用。 但通过这种方式,我们可以写入CSV文件…不是为了… 有人知道如何处理这种情况。 我可以使用Silverlight从服务器中逐行获取数据,将它传递给客户端…在客户端生成excel。

我怎样才能导出非常大量的数据来优化

我目前正在使用EPPlus将数据导出为ex​​cel。 它适用于less量的数据。 但是它会消耗大量的内存来输出大量的数据。 我简要介绍一下OOXML和/或Microsoft Open XML SDK 2.5。 我不确定我可以使用它来将数据导出到Excel? 还有第三方提供程序库。 我想知道什么解决scheme可以很好地完成出口大量数据的工作,而且不会占用太多的空间(理想情况下小于输出数据量的3倍)? 更新:一些额外的要求…我需要能够导出“颜色”信息(不包括CSV),我希望像EPPlus库(不包括XML格式本身)易于pipe理的东西。 我发现另一个线程,他们推荐Aspose或SpreadsheetGear,我正在尝试。 我把第一个答案确定。 谢谢大家。 更新2016-02-16就像信息…我们现在使用SpreadSheetGear,我们喜欢它。 我们需要支持一次,这是真棒。 谢谢

VBA内存问题,同时指定数组的范围

我的目的是分配一个Excel范围的单元格与二维variables数组的值。 分配工作正常,但是我面对一个内存问题(泄漏):当我启动Excel时,这个过程需要或多或less的22个内存。 运行下面的代码(创build一个新的工作簿,分配范围,closures工作簿而不保存)后,该过程需要33 Mo的RAM。 有没有人有一个想法,我在做什么错了? 问候,亚历山大 这里的代码 Option Explicit Sub test() Dim nLines As Long Dim xSize As Long Dim j As Long Dim i As Long 'Creating New Empty Workbook Application.Workbooks.Add Range("A1").Select Application.ScreenUpdating = False nLines = 10000 xSize = 200 Dim myRange As Range Dim myArray() As Variant ReDim myArray(1 To nLines, 1 […]

.NET和CreateObject,它的内存COM对象使用?

我有一个VB.NET应用程序使用CreateObject来使用Excel并将大量数据转储到其中。 我们正在摆脱内存exception,我们的应用程序在这一点上通常打1GB的内存。 不过,我不能把所有的数字加起来。 这就是数据传递给Excel的方式: worksheet_object.Range("A1").Resize(rows, cols).Value = an_array 该应用程序是在屏幕上的数据(数据网格)400MB左右,当它崩溃时,已经使用了额外的600MB,尽pipeExcel的CSV只有200MB,CSV只有68MB。 我意识到在内存数组可能会有所增加,但600MB如何得到吞噬将数据传递给Excel,除非Excel以某种方式使用我的应用程序内存? 我试图找出,如果Excel通过CreateObject运行在自己的内存空间或使用我的应用程序内存空间,绘制一个完整的空白。 ProcessExplorer将它们显示为单独的进程,所以我不知道该怎么想。 我们发现运行的应用程序为64位,而不是32解决了这个问题,但并不是所有的客户将有64位的办公室。 所以我的问题是:这一行怎么可以使用600MB,有没有更好的方法将数据传递给Excel。

什么是Excel 2007工作簿名称大小限制? 为什么?

Excel 2007中的工作簿名称应该仅受内存大小的限制,但似乎并非如此。 最后,保存到名称的数组将会变得足够大,以至于当您尝试保存时会得到(释义):“本工作簿中的一个或多个公式大于8192字符限制,请另存为二进制文件”。 好吧,然后将它保存为二进制文件格式…但即使在这里,一个数组可以变得足够大,使保存文件不可能。 是什么赋予了? 如何在Excel中存储名称,这发生? 这是什么东西特别是安装? 有没有办法解决它? 用下面的代码尝试一下。 它会运行完美,名称将被正确填充,但保存会给你一些讨厌的错误。 3351元素太多,但3350节省就好: Public Sub TestNameLimits() Dim v As Variant ReDim v(1) Dim index As Integer For index = 1 To 3351 ReDim Preserve v(index) v(index) = "AAAA" Next Call Application.Names.Add("NameLimit", v) End Sub

内存缺乏Excel VBA

我已经做了一些子程序,他们在5个文件的testing阶段工作得很好,但是当我把它们放在真正的数据上时,那就是600个文件,一段时间之后,我得到这个消息: Excel无法使用可用资源完成此任务。 select更less的数据或closures其他应用程序。 我GOOGLE了它,我发现最多的是application.cutcopymode = false ,但在我的代码,我不使用剪切和复制模式,但处理复制 destrange.Value = sourceRange.Value 而当我去debugging,我的意思是在错误提示后,我需要这一行代码。 如果有人遇到类似的情况,并知道如何解决这个问题,我将不胜感激。 只是为了让自己清楚我已经尝试了application.cutcopymode = false并没有帮助。 我打开这600个文件中的每一个,按照不同的标准sorting,从每个拷贝开始,先将100个拷贝到新的工作簿中(一个接一个),当我完成一个标准时,我保存并closures新的工作簿并打开新的工作簿,不同的标准。 如果有人有兴趣帮忙,我也可以提供代码,但为了简单起见,我没有。 任何帮助或build议都是值得欢迎的。 谢谢。 编辑: 这里是主要的子目录:(其目的是从工作簿信息中获取复制的第一行数,因为我需要先复制第一个100,然后是50,然后是20,然后是10 …) Sub final() Dim i As Integer Dim x As Integer For i = 7 To 11 x = ThisWorkbook.Worksheets(1).Range("N" & i).Value Maximum_sub x Minimum_sub x Above_Average_sub x Below_Average_sub x Next i End Sub […]