Tech Tock

Time is of the essence.

Top of the Charts – XCeed is fast

I’m doing an interesting charting project which will plot up to 500 thousand points, so I’m learning a bit about charts.  There seems to be about a million different vendors selling .Net charts, so there’s a lot to choose from.  The problem is there’s about a million different charts, so there’s too many to choose from.  I’ll tell about a couple I’ve used today.

I started with Chart FX, its incredibly feature rich and can do surface charts that we wanted.

chartFX.Surface

Chart FX Surface Chart

Unfortunately, when throwing a few thousand points at it, the performance wasn’t stellar.

I just switched to XCeed.  It can do surface plots too, but its literally a thousand times faster at ploting points.  They say they use GDI, but I think there’s a flux capacitor hidden in there somewhere.  The only downside, is its not WPF, its windows forms.  That doesn’t seem like too much of an issue though.  The XCeed example code is a lot more focused and comprehensive than Chart FX, so far its been a win, but I’m just getting started with it.

xceedSurface

XCeed Chart Surface Chart

The code I uploaded was a big hit, so here’s a quick and dirty app showing that the XCeed chart is 1000 times faster than Chart FX for plotting points:

XceedVsChartFX

XCeed Vs. Chart FX Point Charting Speed

With the same 5000 points given to both charts, XCeed charted in 9 ms and Chart FX took 3.5 seconds.  When resizing the form, Chart FX will freeze up again for 3.5 seconds.  The code is also a good sample of how to use a Windows Forms Control in a WPF application.  Click here for code, with the usual no warranties.

About these ads

November 7, 2009 - Posted by | Uncategorized | , , , , , , , , , , ,

6 Comments »

  1. Interesting. What specifically are you using the surface charts for?

    Comment by KTT | November 8, 2009 | Reply

    • It’s financial data, that’s about all I can say.

      Comment by goldmanalpha | November 9, 2009 | Reply

    • Actually, I thought I would be doing surface charts, but since my data is market data and not a formula, it is really a scatter chart, just a bunch of points in 3D. I’ve gotten rather good performance in XCeed with 20,000+ points now. Rather good means drawing in about 400 ms with smooth rotating. I’ll post some stats on that soon.

      Comment by goldmanalpha | November 13, 2009 | Reply

  2. The performance here is for 2D charts. Now that I’m going to 3D, XCeed is bogging down too. If anybody knows a package that has good performance for thousands of points in 3D, let me know.

    There’s some tricks I can probably play with the dataset (like ignoring common points and fading in), but I’m not sure XCeed will fulfill the performance goals either.

    Comment by goldmanalpha | November 10, 2009 | Reply

  3. Actually, I’m seeing about 10 seconds to plot 10,000 points in 3D so maybe I can work something out. Of course if its 10 seconds to draw, its 10 seconds for any rotate.

    Comment by goldmanalpha | November 10, 2009 | Reply

  4. [...] 12, 2009 I overcame the 3D charting slowness by (duh) changing the point style to inverted pyramid from sphere. Obviously, the graphics hardware [...]

    Pingback by Charting Update – XCeed Still Going Strong in 3D « Tech Tock | November 12, 2009 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: