[Mono-dev] Should we replace MemoryStream?

Steve Bjorg steveb at mindtouch.com
Mon Nov 9 16:00:59 EST 2009


The implementation could be adapted so that if the chunked memory  
stream is initialized with an existing byte array it behaves like it  
did in the past.  It's possible that the best approached can be  
derived for the various MemoryStream constructors.

The question is what is the most common usage pattern?  If it's  
GetBuffer(), then there will be a performance and overhead hit.   
However, if it's using Write()/Read() as we do, then there are some  
significant gains to be had.  GetBytes() would also benefit, though  
not as much.

- Steve

--------------
Steve G. Bjorg
http://mindtouch.com
http://twitter.com/bjorg
irc.freenode.net #mindtouch

On Nov 9, 2009, at 11:41 AM, Andreas Nahr wrote:

> Are you talking about System.IO.MemoryStream?
> Then imho this would be a problematic move.
> Most people are used to new MemoryStream (someByteArray) being O(0)  
> time,
> but with ChunkedStream would be O(n). In fact in those cases  
> ChunkedStream
> would need twice the memory because it would still need to retain the
> original byte array (e.g. for GetBuffer).
>
> Happy hacking
> Andreas
>
> -----Ursprüngliche Nachricht-----
> Von: mono-devel-list-bounces at lists.ximian.com
> [mailto:mono-devel-list-bounces at lists.ximian.com] Im Auftrag von  
> Miguel de
> Icaza
> Gesendet: Montag, 9. November 2009 19:10
> An: mono-devel-list
> Betreff: [Mono-dev] Should we replace MemoryStream?
>
> Hello folks,
>
>    I just blogged about a memory fragmentation issue here:
>
> 	http://tirania.org/blog/archive/2009/Nov-09.html
>
>    And I am wondering: since MemoryStream is one of these sources of
> problems, we could replace this implementation with MindTouch's
> ChunkedStream.
>
> Miguel.
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list



More information about the Mono-devel-list mailing list