In theory the memory requirements shouldn't be that much worse by having you implement the circular buffer, rather than have the control do it for you. More complicated, sure. But overall, the amount of memory required at any one time should be about the same. The only difference is that in one case, the memory is hidden inside the CVI library, and in anoter case it's being explictly allocated for you.
Having said, I can see how the solution I suggested would be slower, since you're replotting all the data on each iteration, rather than only the new data points. Depending on how much data you want to be visible in the graph at any one time, this might be a significant issue. If that's the case, you might want to consider plotting only the new points each time. To do that, instead of removing the previous plot with each iteration, you can leave it in the graph, and instead plot only the new data
in a new plot, and link it to the last point of the previous plot. If the new data is a single point per trace, then you can use PlotLine, and you won't even need a circular buffer for your data. You just have to remember the last data point. It would look something like this:
Iteration 1: PlotPoint (x1, y1)
Iteration 2: PlotLine (x1, y1, x2, y2)
Iteration 3: PlotLine (x2, y2, x3, y3)
Iteration 4: PlotLine (x3, y3, x4 y4)
etc...
If you do it this way, you'll have to decide on a good metric for when to delete old plots that are no longer in view. The plots will naturally disappear, since you will also be updating the [min,max] range on each iteration. Eventually old plots will scroll out of view, and it's okay to delete them anytime after that point. You can delete them on each iteration, or you can delete them in large batches, once in a while.
Unfortunately, CVI doesn't have a strip chart control that supports non-uniform time, so I can't think of a better solution for you to try.
Luis