[Mono-bugs] [Bug 666245] libgdiplus - fast copy path optimisations

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Mar 27 07:41:20 EDT 2011


https://bugzilla.novell.com/show_bug.cgi?id=666245

https://bugzilla.novell.com/show_bug.cgi?id=666245#c3


--- Comment #3 from Alexander Stohr <alexander.stohr at gmx.de> 2011-03-27 11:41:19 UTC ---
the current/old design is this:

for (pixel 0...999)
{
    get_pixel()
    put_pixel()
}

the updated design is this:

if (optimisation_is_applicable)
{
    memcpy(dst, src, 999*pixel_size)
}
else
{
    /* use current/old design */
}

as you can see the current/old code is doing two function calls per loop cycle.
this is definitely a performance kill on even the best application processor.
its hard to say how much worser it will hit the performance on sub-optimal
processor designs.

in get_pixel and put_pixel there is further a bunch of if/else sequences hidden
that is much worser than the one-time check (optimisation_is_applicable).

lets hope you got it why you really dont need a benchmark to see its a sure
improvement for overall cases.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list