As suggested by Benjamin, I switched UberGraph to use a single GdkPixmap instead of two. Previously I copied the content back and forth between Pixmaps as I added the new second's worth of data. That wasted memory in X as well as being unnecessary. Now it uses a single GdkPixmap as a circular buffer and blits in two steps (no fear, as we get double buffering for free from gtk).
-- Christian Hergert 2010-08-09