[Mono-dev] Fundamental performance problems with Mono

Thad Thompson TThompson at Nucsafe.com
Sun Jan 10 15:15:12 EST 2010

As a follow up, here is a patched version of BufferManager.cs along with
its currently missing unit test that provides a correct (albeit slow)
default manager. It essentially just hands back normally allocated and
garbage collected memory. At some point in the future it could be
augmented with pooled managers which would help give the desired
performance boost.


-----Original Message-----
From: mono-devel-list-bounces at lists.ximian.com
[mailto:mono-devel-list-bounces at lists.ximian.com] On Behalf Of Thad
Sent: Friday, January 08, 2010 4:23 PM
To: Miguel de Icaza
Cc: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Fundamental performance problems with Mono

Hi Miguel,
The purpose of System.ServiceModel.Channels.BufferManager in WCF is to
allocate buffers from a pool. The current implementation in Mono is
marked [MonoTODO] and only returns a single buffer. Not only does it not
manage a pool, but each invocation of TakeBuffer returns a reference to
its single internal buffer which would probably cause any consumer of
this class to crash and burn when run on Mono.


-----Original Message-----
From: Miguel de Icaza [mailto:miguel at novell.com] 
Sent: Friday, January 08, 2010 4:06 PM
To: Thad Thompson
Cc: zvikag; mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Fundamental performance problems with Mono

Hello Thad,

> If you do decide to go with managed buffers you'll need to implement
> your own (or find a good library) as the WCF BufferManager in Mono
> really do what you want.

Can you describe what are the limitations in Mono's Buffer Manager?


Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: BufferManager.cs.patch
Type: application/octet-stream
Size: 6360 bytes
Desc: BufferManager.cs.patch
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20100110/ac816c74/attachment.obj 

More information about the Mono-devel-list mailing list