Memory Footprint

Libart memory use can be pretty large if you use complex drawing primitives such as circles (through the use of art_vpath_new_circle) or bézier paths (through the use of art_bez_path_to_vec).

The reason for the high memory use is that these drawing primitives are converted to VPaths before being rendered and the VPath representing these primitives use a lot of memory space. If you want to fix this, feel free to fix both the renderer and the intersector to handle these complex primitives directly (freetype2 antialised renderer does this: you might want to have a look at its code in src/smooth/ftgrays.c).