[Mono-osx] GDI+ OSX performance
alexander.shulgin at yessoftware.com
Wed Aug 19 11:56:31 EDT 2009
> no the code is not being executed within a loop. The pinned array is used as
> a mechanism to allow fast pixel processing while avoiding unsafe code. The
> method works very well. See the article here:
Thanks, I will take a look.
> I haven't yet tried profiling. That will be the next step. However, all my
> binaries are VS2008 which I am executing on the Mono runtime. What profiling
> tools are available for use on Mac?
There's Mono profiler (built in into `mono' binary IIRC). Refer to
Haven't tried it on Mac, but I guess it's currently the only tool
available. There was some buzz about visual profiler recently--try
googling for it.
Best of luck,
> Alexander Shulgin wrote:
>> LKeene wrote:
>>> Hi Alex,
>>> it's in response to an earlier thread I started wherein I was getting
>>> 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
>>> full-force and I'd very much like to get some ideas of where (in general)
>> 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 =
>> Marshal.UnsafeAddrOfPinnedArrayElement(Channel1BitmapBytes, 0);
>> 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?
>> Kind regards,
>>  http://go-mono.com/forums/#nabble-p24577325
>>> Alexander Shulgin wrote:
>>>> LKeene wrote:
>>>>> Hello all, I'm revisiting an old issue. Has anyone seen (big)
>>>>> issues with Mono + OSX regarding the use of:
>>>>> Graphics grafix = Graphics.FromImage(SomeBitmap); ?
>>>> No. Why?
More information about the Mono-osx