I'm building a graph display and am rolling my own drawing and antialiasing to avoid the performance issues associated with very large paths (see e.g. http://www.juce.com/forum/topic/improving-waveform/spectrum-drawing-efficiency-opengl ). In order to manipulate pixels directly I create an Image and manipulate its BitmapData. However, when I profile the code it is only marginally faster. Pretty much all of the time is spent in drawImageAt. I expected this to be the bottleneck but I am surprised by how much! Any ideas how I can speed this up a bit?
There's not really a lot you can do... Drawing constantly refreshed images will waste CPU. Make the move to OpenGL, rendering vector graphics is extremely fast.