<?xml version="1.0" encoding="windows-1252"?>
<node id="1016035" title="Re^4: Reducing the memory usage of Spreadsheet::ParseExcel" created="2013-01-30 06:18:33" updated="2013-01-30 06:18:33">
<type id="11">
note</type>
<author id="806480">
Neighbour</author>
<data>
<field name="doctext">
I've used [mod://Spreadsheet::ParseExcel::Stream] instead of [mod://Spreadsheet::ParseExcel] and it uses 1.0GB memory after parsing an xls-file with a single worksheet and 64772 rows and 120 columns. This is before I go through the parsed worksheets and rows.&lt;br&gt;
Opening this in Excel (2007) seems to use only 230MB.&lt;br&gt;
So even with this module, reading a somewhat large Excel file uses excessively large amounts of memory.

Edit: The xls-file is 122MB.

&lt;c&gt;
print("Before creating new Spreadsheet::ParseExcel::Stream:\n" . `free -m`);
	my $ExcelParser = Spreadsheet::ParseExcel::Stream-&gt;new($FileName);
print("After creating new Spreadsheet::ParseExcel::Stream:\n" . `free -m`);
&lt;/c&gt;
results in
&lt;c&gt;
Before creating new Spreadsheet::ParseExcel::Stream:
             total       used       free     shared    buffers     cached
Mem:          3011       1250       1761          0          2        177
-/+ buffers/cache:       1071       1940
Swap:          956        177        779
After creating new Spreadsheet::ParseExcel::Stream:
             total       used       free     shared    buffers     cached
Mem:          3011       2257        753          0          2        177
-/+ buffers/cache:       2077        933
Swap:          956        177        779
&lt;/c&gt;</field>
<field name="root_node">
1014438</field>
<field name="parent_node">
1014856</field>
</data>
</node>
