Pre loader

High Memory Pressure / Garbage during 2D-Chart-Series rendering

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums


SciChart is creating too much garbage objects/events* instead of reusing through pools (Analysis through dotMemory shows this). In complex applications this additional gc-pressure causes frequent lockups. (GC Pauses in 50-250ms+ range).

Top backtraces for GC-Problem:
– WeakEventTable.Purge
– Tick Rendering (TimeSpan, Strings)
– ProperyChangedEventManager.Purge

Top Types:
– WeakEventTable+EventKey
– HybridDictionary
– Double, String, TimeSpan
– Action

All of these top types/backtraces result directly from SciChart as we cross-verified with your 2D-Chart-Realtime-Series demo and by omitting the SciChart controls from our application. ( 2/3 of the total memory pressure comes from SciChart with even just 2 charts being present in our application, we see 5MB garbage memory traffic per 2 second, resulting in very frequent GC collections sporadically spiking into a high duration)

We currently use SciChart WPF V5, it seems SciChart WPF V6 Demo didnt fix this instead just using the LowLatency GC mode causing more frequent GC-collections causing worse overall performance in complex applications. (as we verfied in our application)

Is there plans to increase memory/object reuse/pooling and reduce events/actions? (70k allocations of events/actions for short time spans arent really understandable). What are those 70k events for simply rendering a chart with not much changing, see the attached image.

What settings/methods do you recommend to lower the Memory Pressure/WeakEvents resulting from SciChart usage?

What is the best rendering method to minimize GC pressure, we only require updates if new data becomes available through our application. Would it be manual?

Please comment

Thank you

V5, tested with V6 too
  • You must to post comments

Hi Hendrik,

Thanks for your inquiry.
Could you please tell which SciChart version do you currently use and send us a small sample project reproducing this issue for investigation?

Thanks in advance.

With best regards,

  • Hendrik Polczynski
    Hi Oleksandr, i can reproduce this in the SciChart WPF v5 Examples and in the SciChart WPF V6 Examples (downloaded last week) in the Example 2D Charts -> ” Realtime Series Values” and “FIFO Scrolling charts” ( a bit different, but still same issue). The screenshot i attached was recorded using JetBrains dotMemory and those 2 Demos/Examples, (i compared the two example versions behaviour by checking the memory traffic between two snapshots whith activated allocation collection. We see the same problem in our application with SciChart being present too, but you can reproduce it with the original Examples as i mentioned. (our use case is FIFO Scrolling charts combined with a backing data series on another axis and the range moving forward on the timeline). Thanks
  • Schmitt Alexander
    Hendrik, is my colleague this is our project (The V5 license we got, is linked to this account). Potentially, if this behaviour is fixed we’d renew a license to get that fix. We use Version v5.2.0.11618_Release in our project.
  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.