Ejemplo n.º 1
0
        public void Parcel_DeepClone_Benchmark_Parallel()
        {
            const int CNT = 100000;

            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            System.Threading.Tasks.Parallel.For(0, CNT,
                                                (i) =>
            {
                var p2 = p1.DeepClone() as PeopleNamesParcel;

                Aver.IsFalse(object.ReferenceEquals(p1, p2));
                Aver.IsFalse(object.ReferenceEquals(p1.Payload, p2.Payload));

                Aver.IsTrue(p1.Payload.Count == p2.Payload.Count);
                Aver.AreEqual(p1.GDID, p2.GDID);
            });
            sw.Stop();
            Console.WriteLine("NOTE: Core i7 x 6 cores 3.2Ghz 47000+ ops/sec on subsequent runs w/o optimization in non-server GC mode");
            Console.WriteLine("Cloned {0} times in {1} ms at {2} ops/sec", CNT, sw.ElapsedMilliseconds, CNT / (sw.ElapsedMilliseconds / 1000d));
        }
Ejemplo n.º 2
0
        public void Parcel_DeepClone_Benchmark()
        {
            const int CNT = 25000;

            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            for (var i = 0; i < CNT; i++)
            {
                var p2 = p1.DeepClone() as PeopleNamesParcel;

                Aver.IsFalse(object.ReferenceEquals(p1, p2));
                Aver.IsFalse(object.ReferenceEquals(p1.Payload, p2.Payload));

                Aver.IsTrue(p1.Payload.Count == p2.Payload.Count);
                Aver.AreEqual(p1.GDID, p2.GDID);
            }
            sw.Stop();
            Console.WriteLine("NOTE: Core i7 3.2Ghz 14000 ops/sec on subsequent runs w/o optimization");
            Console.WriteLine("Cloned {0} times in {1} ms at {2} ops/sec", CNT, sw.ElapsedMilliseconds, CNT / (sw.ElapsedMilliseconds / 1000d));
        }
Ejemplo n.º 3
0
        public void Parcel_DeepClone_2_Equals_ToString()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);
            var p2 = p1.DeepClone() as PeopleNamesParcel;

            Aver.IsFalse(object.ReferenceEquals(p1, p2));
            Aver.IsTrue(p1.Equals(p2));

            Console.WriteLine(p1.ToString());
        }
Ejemplo n.º 4
0
        public void Parcel_DeepClone_1()
        {
            var names = new List <string> {
                "Kozloff", "Sergeev", "Aroyan", "Gurevich"
            };
            var p1 = new PeopleNamesParcel(new GDID(0, 123), names);

            p1.Seal(FakeNOPBank.Instance);
            var p2 = p1.DeepClone() as PeopleNamesParcel;

            Aver.IsFalse(object.ReferenceEquals(p1, p2));
            Aver.IsFalse(object.ReferenceEquals(p1.Payload, p2.Payload));

            Aver.IsTrue(p1.Payload.SequenceEqual(p2.Payload));
            Aver.AreEqual(p1.GDID, p2.GDID);
        }