Strip chart using up most of cpu


I am new to VisAD and currently exploring the possibility of using it
for our project.

One of the things we need from a charting package is to be able
to display real-time data that is coming in at 10Hz.  One of the
displays will be a strip chart, which is an x-y plot and all the
points are plotted and it is moving as new data comes in.

I tried to implement one using one of the tips I found in the
mail archive about initially creating a large range-sample (10000) with
NaNs, then as data comes in call setSample(index, data).
setRange() is set to 500 points and as more data comes in
setRange() is adjusted by 1.

This certainly does what we want but as the data is accumulating
(around 600 points) cpu usage jumps from 50% to ~99%.

I'm sure if I saved off "old" data the display wouldn't use
so much cpu to redraw, but our users will want to scroll back...

Is this expected behavior since I'm keeping all the data?
Do you have any recommendations?

Thanks in advance.