I want to Rasterize large numbers of single characters quickly, not as a single image but many separate ones. Ideally each one has unique/shrinkwrapped dimensions, but "monospacing" them by taking the largest possible image size is OK.
Consider the strategies
chars=CharacterRange[32,200]
Timing[Rasterize/@chars] (*Option 1= 31 seconds*)
Timing[ParallelMap[Rasterize,chars]] (*Option 2= 0.3 seconds*)
Timing[Rasterize@Style[Row@chars,LineBreakWithin->False]](*Option 3= 0.08 seconds*)
Obviously option 2 is a massive improvement, but option 3 is the best if only it gave separate images.
Can I have my cake and eat it too; a fast/optimized version of Rasterize that threads over lists?
This answer to "Faster alternative to Rasterize" indicates that Rasterize does its work in the front end, so is hard to profile/time.
I may dig around with JLink or write some C to figure out more internals. Blindly digging, I found System`ConvertersDump`ConvertGraphicToRasterDataPacket and System`ConvertersDump`GetRasterData which uses "BitmapPacket"s.
I'm not experienced enough to play with these internals -- can I manually construct and send a System`ConvertersDump`Utilities`GetFromFE packet?


Rasterize. The simple fact is, creating a graphics context and a destination image to render to is going the limiting factor. Generating/rendering an atlas and then cutting it up is the fastest approach. That is whatWordCloudhappens to do at the moment. $\endgroup$