static void Generate(ref AddressBook ab, ref NetAddressBook nab) { ab.List = new List<Person>(); nab.List = new List<NetPerson>(); //Generating structures for (int n = 0; n < 5000; n++) { Person p = new Person(); p.Name = "Alice" + n; p.Id = 17532; p.Email = "Alice" + n + "@silentobit.com"; p.Phone = new List<Person.PhoneNumber>(); ab.List.Add(p); NetPerson np = new NetPerson(); np.Name = p.Name; np.Id = p.Id; np.Email = p.Email; np.Phone = new List<NetPerson.NetPhoneNumber>(); nab.List.Add(np); for (int m = 0; m < 1000; m++) { Person.PhoneNumber pn = new Person.PhoneNumber(); pn.Type = Person.PhoneType.MOBILE; pn.Number = m.ToString(); p.Phone.Add(pn); NetPerson.NetPhoneNumber npn = new NetPerson.NetPhoneNumber(); npn.Type = Person.PhoneType.MOBILE; npn.Number = pn.Number; np.Phone.Add(npn); } } }
private static void TestPerformance() { AddressBook ab = new AddressBook (); ab.List = new List<Person>(); //Generating structures for (int n = 0; n < 1000; n++) { Person p = new Person (); p.Name = "Alice" + n; p.Id = 17532; p.Email = "*****@*****.**"; p.Phone = new List<Person.PhoneNumber> (); for (int m = 0; m < 1000; m++) { Person.PhoneNumber pn = new Person.PhoneNumber (); pn.Type = Person.PhoneType.MOBILE; pn.Number = m.ToString (); p.Phone.Add (pn); } ab.List.Add (p); } //Serialize DateTime start = DateTime.Now; byte[] buffer = AddressBook.SerializeToBytes (ab); TimeSpan serialize = DateTime.Now - start; Console.WriteLine ("Speed test: Serialize in " + serialize); //Deserialize start = DateTime.Now; AddressBook.Deserialize (buffer); TimeSpan deserialize = DateTime.Now - start; Console.WriteLine ("Speed test: Deserialize in " + deserialize); }
public static void Run() { Console.WriteLine("Starting speed test..."); AddressBook ab = new AddressBook(); NetAddressBook nab = new NetAddressBook(); ab.List = new List<Person>(); nab.List = new List<NetPerson>(); //Generating structures for (int n = 0; n < 5000; n++) { Person p = new Person(); p.Name = "Alice" + n; p.Id = 17532; p.Email = "*****@*****.**"; p.Phone = new List<Person.PhoneNumber>(); ab.List.Add(p); NetPerson np = new NetPerson(); np.Name = p.Name; np.Id = p.Id; np.Email = p.Email; np.Phone = new List<NetPerson.NetPhoneNumber>(); nab.List.Add(np); for (int m = 0; m < 1000; m++) { Person.PhoneNumber pn = new Person.PhoneNumber(); pn.Type = Person.PhoneType.MOBILE; pn.Number = m.ToString(); p.Phone.Add(pn); NetPerson.NetPhoneNumber npn = new NetPerson.NetPhoneNumber(); npn.Type = Person.PhoneType.MOBILE; npn.Number = pn.Number; np.Phone.Add(npn); } } using (MemoryStream ms = new MemoryStream()) { //Serialize DateTime start = DateTime.Now; AddressBook.Serialize(ms, ab); TimeSpan serialize = DateTime.Now - start; Console.WriteLine("Speed test: Serialize " + ab.List.Count + " posts in " + serialize.TotalSeconds + " s"); //Deserialize ms.Seek(0, SeekOrigin.Begin); start = DateTime.Now; var dab = AddressBook.Deserialize(new StreamRead(ms)); TimeSpan deserialize = DateTime.Now - start; Console.WriteLine("Speed test: Deserialize " + dab.List.Count + " posts in " + deserialize.TotalSeconds + " s"); } using (MemoryStream ms = new MemoryStream()) { //Serialize DateTime start = DateTime.Now; ProtoBuf.Serializer.Serialize(ms, nab); TimeSpan serialize = DateTime.Now - start; Console.WriteLine("Protobuf-net: Serialize " + nab.List.Count + " posts in " + serialize.TotalSeconds + " s"); //Deserialize ms.Seek(0, SeekOrigin.Begin); start = DateTime.Now; var dab = ProtoBuf.Serializer.Deserialize<NetAddressBook>(ms); TimeSpan deserialize = DateTime.Now - start; Console.WriteLine("Protobuf-net: Deserialize " + dab.List.Count + " posts in " + deserialize.TotalSeconds + " s"); } }