Skip to main content Skip to footer

Memory Use in AR.NET

Server memory is a resource that is used by AR during report generation, and there are a good few questions around it.

So here is a quick overview of what all happens in relation to memory in AR report generation for the .NET product.

Data and datasets:
One of the areas that uses memory on a render of a report that is not the report itself is the data that is being brought in for report generation.

During a render, the report definition will reach out to a data source based on the dataset that is made on the report. For each dataset there will be a request to the data source, and each of these will be stored on the rendering machine until after the render which is when they are marked for garbage collection, which will not happen immediately. But this process will happen every render.

If you do calculations and other expressions with the values these will also be stored for each given render.

Rendered Report:
During the report rendering the rendered pages of the report are stored in memory.

Report exporting:
During the export process of the report, it will be re-rendered based on the data into the expected output based on the request.
Once the file is then exported and the render is stopped, this will also be marked for garbage collection.

In the end there are a few different areas that will take up memory. For most report renderings there will not be an issue with memory, but if there are a large amount of requests to a central web app, or there is a large dataset that is being brought in for Web or .NET Apps these can cause to memory being taken up, but in these cases that is expected and it will be freed via the garbage collection.

Victor Stahlman