[SDL] Submission: IMG_Init and IMG_Quit for faster loading
Donny Viszneki
donny.viszneki at gmail.com
Mon Apr 6 18:38:20 PDT 2009
On Mon, Apr 6, 2009 at 2:59 PM, Mason Wheeler <masonwheeler at yahoo.com> wrote:
> I was looking through the event log of one of my programs that does a lot of image loading, and saw several hundred repeats of the notification that libpng.dll and zlib.dll had been loaded and then unloaded. A bit of checking around in IMG_png.c confirmed my suspicions: It was loading and unloading libpng (which had its own dependency on zlib) for every single image. There was code built into IMG_InitPng() to prevent this, but it never actually gets used. So I wrote up a quick patch to enable it, adding IMG_Init() and IMG_Quit() routines that work a lot like SDL_Init() and SDL_Quit().
Wow, great catch! Thanks for your contribution!
> The results were dramatic. Not unloading and reloading the DLLs every time shaved about 43 seconds off of a loop that processed 357 PNG images! (On a nice, fast quad-core system with 4 GB of RAM!) Apparently there's some pretty significant overhead associated with those loads and unloads. This will really boost performance for anyone who needs to load up a bunch of images.
This is a really bad frame of reference! How long does it take without
your patch?
--
http://codebad.com/
More information about the SDL
mailing list