[Mono-list] Very fast growing of serialization time for big array
Andreas Färber
andreas.faerber at web.de
Sat Feb 27 08:25:58 EST 2010
Hi,
Am 27.02.2010 um 13:21 schrieb Yury Serdyuk:
> I have tried to serialize a big array of floats ( more than 270
> millions
> elements )
> and observed a very fast growing of serialization time.
[...]
In fact you're not just measuring the serialization time but also the
time for the MemoryStream to grow and possible GCs triggered as a
consequence.
> The code for testing was:
>
>> using System;
>> using System.IO;
>> using System.Runtime.Serialization;
>> using System.Runtime.Serialization.Formatters.Binary;
>>
>> public class BigSerializationTest {
>>
>> public static void Main ( String[] args ) {
>>
>> int size = Convert.ToInt32 ( args [ 0 ] );
>>
>> BinaryFormatter bf = new BinaryFormatter();
>> MemoryStream ms = new MemoryStream();
Try something like new MemoryStream (4 * size) for comparison.
>> float[] array = new float [ size ];
>>
>> for ( int i = 0; i < array.Length; i++)
>> array [ i ] = 1.0f;
>>
>> DateTime dt1 = DateTime.Now;
>> bf.Serialize ( ms, array );
>> DateTime dt2 = DateTime.Now;
>>
>> Console.WriteLine ( "Serialization time = " + (dt2-dt1).TotalSeconds
>> + " secs." );
>>
>> }
>>
>>
>> }
>
> Do any have some thoughts about reasons of this problem and
> how to resolve it ?
Regards,
Andreas
More information about the Mono-list
mailing list