A WPF line chart built with LightningChart .NET renders more than one billion data points in a live, scrolling view at around 100 frames per second. The demo on this page uses 10 series with an X axis 100,000,000 points long, and you can download both the running executable and the full Visual Studio project below. The largest set we have tested is 1.8 billion points, at which point physical memory, not the renderer, became the limit.
Here, you can download the Demo and Visual Studio project.
Includes the running executable and the full source project.
Step-by-step guide
First, open Executable Demo and run WpfApplicationBillionPoints.exe
Periodically, the selected count of data points is appended in the tail of each series. When the chart gets full (reaches right edge), it starts to scroll the view.
Benchmark results
| Setup | Result |
|---|---|
| 1 billion points, near Full HD window | about 100 FPS |
| 1 billion points, 4K full screen | about 60 FPS |
| Largest set tested | 1.8 billion points |
Measured on an NVIDIA GTX 960. That card was released in 2015, so current hardware will do better. The 1.8 billion point ceiling came from running out of physical memory, not from render time.
Next, the line style is set to round, anti-aliased two pixel wide lines. LightningChart has many other line styles, including faster ones. The lines in this demo are colored by Y value: red near the maximum, blue near the minimum. Uniform alarm limits are also available.
Recommended setup to run the demo
Windows 10 or Windows 11, an Intel i7 or equivalent, a dedicated graphics card, and 16 GB RAM. Allow 32 GB if you want to go beyond a billion points.
Why LightningChart .NET renders a billion points
Most WPF and WinForms charting controls render through the CPU and the WPF visual tree, which is why they slow down well before a million points. LightningChart .NET renders on the GPU, so the practical ceiling is how much data fits in memory rather than how long a frame takes to draw.
The series types used in this demo are optimized for real-time data feeds, which is what lets the view keep scrolling while new points arrive at the tail of each series.
How many data points can a WPF chart handle?
Most WPF charting controls slow to an unusable frame rate somewhere between 100,000 and a few hundred thousand points, because they render through the CPU and the WPF visual tree. LightningChart .NET renders on the GPU and holds a live scrolling view of over one billion points at around 100 FPS. The practical ceiling is available memory rather than render time. We have pushed a separate demo to one trillion data points.
What is the fastest WPF chart library?
Speed in WPF charting comes down to where the drawing happens. Libraries that build a WPF visual tree element per data point hit a wall early, while GPU rendering scales with the graphics card instead of the UI thread. This demo is the measurable version of that difference: one billion points, around 100 FPS, on a 2015 graphics card. For a side by side look at the options, see our comparison of the best WPF charting libraries.
How do you create a high performance WPF chart?
Three things matter more than anything else. Use a chart that renders on the GPU rather than through WPF’s visual tree. Append new data to the tail of an existing series instead of rebuilding the series on every update. Keep the data in the format the chart expects so no conversion happens per frame. The Visual Studio project in the download above shows all three in working code, and there is more detail in our guide to high performance WPF charts.
Can a WPF chart update in real time?
Yes. This demo appends points continuously and scrolls the view once the chart fills, which is the pattern used in monitoring and telemetry applications. The same approach handles live sensor feeds, financial tick data and instrument output. See the real-time monitoring demo for a second example.
Does the chart stay interactive at a billion points?
Yes. Zoom, pan and cursor tracking all keep working while new points are arriving at the tail of each series. Interactivity is not traded away for the point count.
Do I need to downsample or resample the data first?
No. The billion points in this demo are real points, not an aggregate. Resampling is available when you want it, but it is not what makes the frame rate possible here, which matters when you cannot afford to lose detail in the raw signal.
Does this work in WinForms as well as WPF?
Yes. LightningChart .NET supports WPF, WinForms and UWP from the same rendering engine, so the performance characteristics described here are the same across all three. The equivalent C# chart control page covers the WinForms side.



