Hi all,

I've written a simple test application to measure gdiplus performace. Although
currently it tests only GdipDrawImage() it could be easily extended to test
anything else if desired.

I'm attaching the test source with results running 32-bit test binary with
gdiplus=b and gdiplus=n (taken from win7). As could be observed, currently
built-in gdiplus performs up to 17 times worse even in identity case in
comparison with native gdiplus. With a scale/rotate graphics transform
the results are up to 20 times slower.

Considerig that built-n gdiplus status regarding support for various complex
things is pretty good, perhaps it's time to spend some time optimizing its
performans.

-- 
Dmitry.
loop count 500
drawing 1 bpp image on a 1 bpp device
bitmap format 0x30101, graphics format 0x30101 (identity): 0.801773 seconds
bitmap format 0x30101, graphics format 0x30101 (scale): 3.504543 seconds
bitmap format 0x30101, graphics format 0x30101 (rotate): 4.556153 seconds
drawing 1 bpp image on a 24 bpp device
bitmap format 0x30101, graphics format 0x21808 (identity): 0.703017 seconds
bitmap format 0x30101, graphics format 0x21808 (scale): 3.347234 seconds
bitmap format 0x30101, graphics format 0x21808 (rotate): 4.488745 seconds
drawing 1 bpp image on a 32 bpp device
bitmap format 0x30101, graphics format 0x26200a (identity): 0.694702 seconds
bitmap format 0x30101, graphics format 0x26200a (scale): 3.339476 seconds
bitmap format 0x30101, graphics format 0x26200a (rotate): 4.476375 seconds
drawing 24 bpp image on a 1 bpp device
bitmap format 0x21808, graphics format 0x30101 (identity): 0.785507 seconds
bitmap format 0x21808, graphics format 0x30101 (scale): 3.460746 seconds
bitmap format 0x21808, graphics format 0x30101 (rotate): 4.571289 seconds
drawing 24 bpp image on a 24 bpp device
bitmap format 0x21808, graphics format 0x21808 (identity): 0.686349 seconds
bitmap format 0x21808, graphics format 0x21808 (scale): 3.341847 seconds
bitmap format 0x21808, graphics format 0x21808 (rotate): 4.485448 seconds
drawing 24 bpp image on a 32 bpp device
bitmap format 0x21808, graphics format 0x26200a (identity): 0.695800 seconds
bitmap format 0x21808, graphics format 0x26200a (scale): 3.390660 seconds
bitmap format 0x21808, graphics format 0x26200a (rotate): 4.478116 seconds
drawing 32 bpp image on a 1 bpp device
bitmap format 0x26200a, graphics format 0x30101 (identity): 0.763379 seconds
bitmap format 0x26200a, graphics format 0x30101 (scale): 3.414672 seconds
bitmap format 0x26200a, graphics format 0x30101 (rotate): 4.522893 seconds
drawing 32 bpp image on a 24 bpp device
bitmap format 0x26200a, graphics format 0x21808 (identity): 0.678621 seconds
bitmap format 0x26200a, graphics format 0x21808 (scale): 3.336979 seconds
bitmap format 0x26200a, graphics format 0x21808 (rotate): 4.443335 seconds
drawing 32 bpp image on a 32 bpp device
bitmap format 0x26200a, graphics format 0x26200a (identity): 0.703239 seconds
bitmap format 0x26200a, graphics format 0x26200a (scale): 3.404557 seconds
bitmap format 0x26200a, graphics format 0x26200a (rotate): 4.491863 seconds
loop count 500
drawing 1 bpp image on a 1 bpp device
bitmap format 0x30101, graphics format 0x30101 (identity): 0.311230 seconds
bitmap format 0x30101, graphics format 0x30101 (scale): 0.257864 seconds
bitmap format 0x30101, graphics format 0x30101 (rotate): 0.236181 seconds
drawing 1 bpp image on a 24 bpp device
bitmap format 0x30101, graphics format 0x21808 (identity): 0.041331 seconds
bitmap format 0x30101, graphics format 0x21808 (scale): 0.060976 seconds
bitmap format 0x30101, graphics format 0x21808 (rotate): 0.040561 seconds
drawing 1 bpp image on a 32 bpp device
bitmap format 0x30101, graphics format 0x26200a (identity): 0.072808 seconds
bitmap format 0x30101, graphics format 0x26200a (scale): 0.092373 seconds
bitmap format 0x30101, graphics format 0x26200a (rotate): 0.056539 seconds
drawing 24 bpp image on a 1 bpp device
bitmap format 0x21808, graphics format 0x30101 (identity): 0.242829 seconds
bitmap format 0x21808, graphics format 0x30101 (scale): 0.265353 seconds
bitmap format 0x21808, graphics format 0x30101 (rotate): 0.237676 seconds
drawing 24 bpp image on a 24 bpp device
bitmap format 0x21808, graphics format 0x21808 (identity): 0.043791 seconds
bitmap format 0x21808, graphics format 0x21808 (scale): 0.064713 seconds
bitmap format 0x21808, graphics format 0x21808 (rotate): 0.041189 seconds
drawing 24 bpp image on a 32 bpp device
bitmap format 0x21808, graphics format 0x26200a (identity): 0.075630 seconds
bitmap format 0x21808, graphics format 0x26200a (scale): 0.092779 seconds
bitmap format 0x21808, graphics format 0x26200a (rotate): 0.057513 seconds
drawing 32 bpp image on a 1 bpp device
bitmap format 0x26200a, graphics format 0x30101 (identity): 0.250685 seconds
bitmap format 0x26200a, graphics format 0x30101 (scale): 0.266518 seconds
bitmap format 0x26200a, graphics format 0x30101 (rotate): 0.242127 seconds
drawing 32 bpp image on a 24 bpp device
bitmap format 0x26200a, graphics format 0x21808 (identity): 0.054108 seconds
bitmap format 0x26200a, graphics format 0x21808 (scale): 0.070041 seconds
bitmap format 0x26200a, graphics format 0x21808 (rotate): 0.045579 seconds
drawing 32 bpp image on a 32 bpp device
bitmap format 0x26200a, graphics format 0x26200a (identity): 0.077109 seconds
bitmap format 0x26200a, graphics format 0x26200a (scale): 0.091846 seconds
bitmap format 0x26200a, graphics format 0x26200a (rotate): 0.056549 seconds

Attachment: gdip_perform.tar.bz2
Description: Binary data



Reply via email to