This example makes a comparison of the memory consumption when using the old V1 and new V2 report engines. Let's use a complex Master-Detail report for comparison. After each build, you can invoke the garbage collector and see the memory consumption:
public Form1()
{

	InitializeComponent();

	using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MemoryTest.MasterDetailSubdetail.mrt"))
	{
		report1.Load(stream);
		report1.EngineVersion = Stimulsoft.Report.Engine.StiEngineVersion.EngineV1;
		report1.Compile();
	}

	using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MemoryTest.MasterDetailSubdetail.mrt"))
	{
		report2.Load(stream);
		report2.EngineVersion = Stimulsoft.Report.Engine.StiEngineVersion.EngineV2;
		report2.Compile();
	}
}

StiReport report1 = new StiReport();
StiReport report2 = new StiReport();

private void button1_Click(object sender, EventArgs e)
{
	report1.Render();
}

private void button2_Click(object sender, EventArgs e)
{
	report2.Render();
}

private void button3_Click(object sender, EventArgs e)
{
	report1.RenderedPages.Clear();
	GC.Collect();
	GC.Collect();
	GC.Collect();
}

private void button4_Click(object sender, EventArgs e)
{
	report2.RenderedPages.Clear();
	GC.Collect();
	GC.Collect();
	GC.Collect();
}

In the screenshot below you can see the result of the sample code:

Testing Memory Usage in EngineV1 and EngineV2

By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.