Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The "strange" behaviour for big messages sizes (30MB) does most certainly orginate from GC pressure. By the way BinaryFormatter should be the slowest of all possible formatters. DataContractFormatter might be much better or a hand written one like this beauty <a href="http://codebetter.com/blogs/gregyoung/archive/2008/08/24/fast-serialization.aspx" rel="nofollow">http://codebetter.com/blogs/gregyoung/archive/2008/08/24/fast-serialization.aspx</a> should be about 16 times faster. How did you measure the times? Was the sending and receiving process the same one? I think 120 MB/s send receive are quite good for .net with a very busy garbage collector. You should have a look a the % GC Time Performance counter to check if it is high. If it is > 95% you should use memory more sparingly. As other commenters have already pointed out memory mapped files are the way to go if you need to pass huge amounts of data between processes. There are many free implementations around like </p> <blockquote> <p><a href="http://www.codeproject.com/KB/recipes/MemoryMappedGenericArray.aspx" rel="nofollow">http://www.codeproject.com/KB/recipes/MemoryMappedGenericArray.aspx</a></p> </blockquote> <p>and</p> <blockquote> <p><a href="http://msdn.microsoft.com/en-us/library/ff650497.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ff650497.aspx</a> (Smart Client Offline Application block has one dll which does contain a nice implementation).</p> </blockquote> <p>Yours, Alois Kraus </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload