Hi,
we are evaluating your product but are concerned about memory consumption. It seems to us that you don’t use memory mapped files (what the Apache Project POI uses). Without that with huge excel files and concurrent users it seems to us it will be easy to run out of memory.
Do you plan to use memory mapped files in future ?
thanks
claudio
Hi,
Thanks for evaluating our product.
Are you using Aspose.Cells for Java? We will get back to you soon for your queries
Thank you.
Hi,
Now we do not support the memory mapped files.
Are you planning to support it in a future release though?
If you have a reporting server that creates the Excel files, memory consumption is very important (in terms of how many reports can be executed at the same time without running OutOfMemory), so that feature would be very welcomed 
Hi.
We will look into this. Do you know how to get that enhanced POI version ?
I sent you a PM
Hi ,
I sent you a private message.
To the large file ,could you divide it to several files?
Good morning, I'm from Pru. I'm creating a excel file and then pdf file that is which is approximately 224 pages, 18000 rows. and when it is saving to excel.. I'm exceding the 60% of ram that is in the machine.config. The file never gets completed only about 75% is saved to excel and then to the pdf
I know I could increase the 60% to 100% but what would that do to other processes.
The server is Windows 2003 and the it has 1 GB of Ram.
Please advise.
Thanks for considering Aspose.
Well, many developers use Aspose.Cells in their server environment to create large / huge workbooks and manipulate data without any difficulty. We always try to enhance and optimize the component to produce better performance. Aspose.Cells is a pure .Net component and we totally rely on .NET Garbage Collector(GC) to release memory. GC won't release memory when you set the objects to nothing. It only releases memory when it thinks it's appropriate, Also in web asp.net application, memory collection is not only handle by GC, but also by asp.net process.
To minimize memory usage and optimize performance you may try a few things:
1. For Aspose.Cells, memory can be extensively consumed for separately set each cell's formattings, creating / implementing too many conditional formattings etc....To resolve such issues, you may optimize your code and create reusable style object(s) based on common formattings related to cells and set these style object(s) to the cells in a worksheet.
2. You might avoid too many large objects in one file. Large objects can cause problems. The .NET Framework keeps large objects (more than 20,000 bytes) in a separate large object heap, so that it can manage them separately from other objects. Large objects are never compacted because shifting 20,000-byte blocks of memory down in the heap would waste too much CPU time. Yet pointers between large objects and other objects can keep large objects alive longer than they need to be. And objects that are close to the 20,000-byte cutoff will still be allocated in the general-purpose heap, and compacting them will incur a significant performance hit.
3. You may populate data first by row then by colum, it will also improve the performance. For example, put data in sequence of A1, B1, A2, B2 will be faster than A1, A2, B1, B2. If there are many cells in a worksheet, this tip can make the program much faster and save memory.
4. If you are using DataSet object to fill huge data, you may try using DataReader object instead, it consumes less memory.
If the problem persits, Could you please create test project and post us here, so that may test and resolve your issue.
Thank you.
Hi,
See my response in blue…Please note I have noticed that the report will finish further if the server has more RAM …
To minimize memory usage and optimize performance you may try a few things:
- For Aspose.Cells, memory can be extensively consumed for separately set each cell’s formattings, creating / implementing too many conditional formattings etc…To resolve such issues, you may optimize your code and create reusable style object(s) based on common formattings related to cells and set these style object(s) to the cells in a worksheet.
Started off using Style Objects but realized that I could not go back and change the properties of the cell if a Style Object was applied to it. Would it be better to have a 10 Style Objects that would be applied to a cell versus setting each cell without the object.
I have enclosed a sample of the report… I’m trying to produce.
- You might avoid too many large objects in one file. Large objects can cause problems. The .NET Framework keeps large objects (more than 20,000 bytes) in a separate large object heap, so that it can manage them separately from other objects. Large objects are never compacted because shifting 20,000-byte blocks of memory down in the heap would waste too much CPU time. Yet pointers between large objects and other objects can keep large objects alive longer than they need to be. And objects that are close to the 20,000-byte cutoff will still be allocated in the general-purpose heap, and compacting them will incur a significant performance hit.
No large objects are inserted into the document.
3. You may populate data first by row then by column, it will also improve the performance. For example, put data in sequence of A1, B1, A2, B2 will be faster than A1, A2, B1, B2. If there are many cells in a worksheet, this tip can make the program much faster and save memory.
My application process by row then by column. Once the row has been populated for 8 columns it is incremented to the next row to value the 8 columns.
- If you are using DataSet object to fill huge data, you may try using DataReader object instead, it consumes less memory.
I’m using the DataReader.
If the problem persist, Could you please create test project and post us here, so that may test and resolve your issue.
Thank you.
Hi,
After checking your responses, I think you are doing fine.
Started off using Style Objects but realized that I could not go back and change the properties of the cell if a Style Object was applied to it. Would it be better to have a 10 Style Objects that would be applied to a cell versus setting each cell without the object.
I have enclosed a sample of the report… I’m trying to produce.
Well, I checked your sample template. Since you are going to populate a lots of cells in your original worksheet (approx. 18000 records or so), I think, yes, it would be better to define some style objects if you are to apply some common formattings to certain range of cells. This will certainly save memory in a huge worksheet.
We are grateful if you could create a sample test project with your code and output file and post us here. So that we may sort out the things soon.
Thank you.
Good morning,
I have attached a test project where I'm getting the server unavailable..basically the ram exceeded the 60 mb.
And it does not matter if style objects are being used it does make the file smaller.. 512 meg of ram on the server that was being used only 13000 rows were created
Thanks,
Georgette
Hi Georgette,
Well, If I exclude the '************** Convert to PDF ***************code, it works fine here and the .xml file (AsposePdf integrated) is created fine and documented ok even if I add 20000 records or so. But running the whole project produces Server Application Unavailable error. I think the problem might occur converting a huge .xml file to .pdf file. For your info, Aspose.Cells Team and Aspose.Pdf Team are working very hard all the time for a better conversion. Both teams always enhance MS Excel to PDF conversion scenarios with every new release and try to optimize the conversion related APIs. One try you could do, choose the latest Aspose.Cells (4.2.0.0) and Aspose.Pdf versions for the task as it might better produce the results.
We will also further investigate the issue to get back to you soon.
Thank you.