I’m using aspose.grid.web version 18.104.22.1681. Am using visual studio 2008. I have an application which just calls GridWeb1.WebWorksheets.ImportExcelFile() in the page load event.
I tried to monitor the application with .net memory profiler and the worksheet never gets disposed. It creates a new one in every session. I need a solution asap.
ASP.Net uses garbage collection to clean up unused memory. The garbage collection assures that
all unused objects will be removed from memory, but the trade-off is that the objects are not removed immediately. There is a period of time during which unused objects sit in memory waiting for garbage collection. For this reason, a typical ASP.Net app will increase memory usage for a time after
which it levels off, and can even drop.
Is there any ways I can force garbage collection? What is the purpose of GridWeb1.dispose() method?
Here is the issue. We are planning to use aspose.grid.web in our applications. We are planning to buy the Site OEM subscription. But the memory usage is so high. It is so high that it hangs everything. The process aspnet_wp.exe uses around 1.3 GB rightaway. As I said, there is a memory leak in the worksheet. Everytime it creates a new instance of worksheet and hence 5 webworksheets and thousands of TableItemStyle instances. Where do you think the problem is? Please respond asap.
I think that your worksheet may very large. How does your app attempt to do against the large sheets? Does it need to edit them? You may try to use SessionMode.Custom to reduce memory usage.
Could you post your sheet file here? We will try to find a way for you.
Thank you for considering Aspose.
Let me try to describe what I’ve figured out so far. I used the .net memory profiler to see whether there is any memory leak. (BTW, the .net memory profiler is great. They help right away if we have any questions).
With Aspose.Grid.Web, a new webworksheet is created on each page request. Along with that, a lot of cells are created each time (TableItemStyle). And these are stored in the session state. This memory is never released. I waited for like more than 40 hours and the worker process w3wp.exe never releases the memory. Is there any ways I can release this memory as soon the session ends?
Also, it takes a really long time to chnage from one sheet to another. I have a button and on its click event, I just changed the activeSheetIndex and the page loads a bit faster. I mean still takes around 12 seconds. But if I click on sheet tab that comes with the control, it takes around 25 to 30 seconds to load. What’s going on there? Are you planning on release of any newer version? Please respond asap.
Thanks for further details.
We will look into your issue soon.
By the way, we appreciate if you could create a sample test project (with all the source files) to demonstrate your issue, it may help us to figure it out.
Thanks. For testing the bugs that I pointed out, I just used a very simple .net project with a aspose.grid.web control in the form and just a one liner GridWeb1.Webworksheets.ImportExcelFile(“abc.xls”). That’s it.
I think the .net framework's GC doesn't always collect the useless objects when there are still free memory. I want to know if the application stoped work when using the grid control.
Anyway, we will make more test against the memory issue.