[Mono-osx] GDI+ OSX performance
alexander.shulgin at yessoftware.com
Wed Aug 19 08:11:18 EDT 2009
> Hi Alex,
> it's in response to an earlier thread I started wherein I was getting very
> poor performance. Someone suggested it was due to Graphics object
> allocations being a bottleneck:
> Any thoughts on the matter? I'm soon going to tackle this performance issue
> full-force and I'd very much like to get some ideas of where (in general) to
I hope you are not trying to say that the code you presented in that
mail is executed in the tight loop. Otherwise it's strange to expect
it to perform any good.
handle = GCHandle.Alloc(Channel1BitmapBytes, GCHandleType.Pinned); //
Pin the array.
IntPtr channel1PTR =
Channel1Bitmap = new Bitmap(this.CanvasWidth, this.CanvasHeight,
stride, myPixelFormat, channel1PTR);
// ...later on (in Paint event handler for example)...
Graphics grafix = Graphics.FromImage(Channel1Bitmap);
> "Channel1BitmapBytes" is a declared globally (within the context of
> "this") and, because the array is pinned, I can write to it in
> multi-threaded fashion.
I fail to see how pinning the array helps in multi-threaded access. Do
you use any synchronization primitives?
Also, did you try profiling?
> Alexander Shulgin wrote:
>> LKeene wrote:
>>> Hello all, I'm revisiting an old issue. Has anyone seen (big) performance
>>> issues with Mono + OSX regarding the use of:
>>> Graphics grafix = Graphics.FromImage(SomeBitmap); ?
>> No. Why?
More information about the Mono-osx