Posted 3 August 2017, 6:09 am ESTIn more testing leading to a final release, we where trying to run large datasets to see how it performs.
We noticed however that the memory consumption in the w3wp.exe goes up with each report run and that memory never seems to be released.
I have attached a sample report with a single column dataset with 70000 rows. This is output to a simple report with a table.
Using the web viewer the first run consumes over 1 GB ram! Subsequent runs consume about 250MB ram. Refreshing the web viewer a few times will quickly exhaust the 4GB of ram on my development machine.
As far as I can tell the memory is never released, so long as the worker process is not recycled the ram usage will never go down, as though the report runs are not being garbage collected.
I tried using the VaryBy property of the viewer to adjust caching, but it seemed to have no effect, and it does not have a setting to turn off caching completely.
The Winform viewer seems to suffer from this too, simply loading the rdlx up and refreshing the report will pretty quickly exhaust my workstation ram. Interestingly enough the Winform viewer is actually MUCH slower at rendering the report than the web viewer!
Now this type of data set is not typical for our users, but sometimes they may need to dump large amount of data into Excel for post analysis. However I believe the issue exist on all size datasets, and in a production install a higher volume of smaller datasets will quickly exhaust web server ram.
The sample I have attached has a dataset serialized to xml that it uses as a datasource, but the issue occurs with a sqlserver data source as well.
Is there anything more I need to do to release memory?
2010/06/DDReports Mem Leak Sample.zip