public void TestClonePerf()
        {
            const int  Reps = 1000;
            TestObject test = TestObject.Create();
            object     result;

            Stopwatch timer = new Stopwatch();

            timer.Start();

            for (int i = 0; i < Reps; i++)
            {
                BinaryFormatter bf = new BinaryFormatter();
                using (MemoryStream m = new MemoryStream())
                {
                    bf.Serialize(m, test);
                    m.Position = 0;
                    result     = bf.Deserialize(m);
                }
            }

            timer.Stop();
            Console.WriteLine("Elapsed: {0,10} (100%)", timer.ElapsedTicks);
            long percentof = timer.ElapsedTicks;

            timer = new Stopwatch();
            timer.Start();

            for (int i = 0; i < Reps; i++)
            {
                result = new SerializerClone().Clone(test);
            }

            timer.Stop();
            Console.WriteLine("Elapsed: {0,10} ({1}%)", timer.ElapsedTicks, (timer.ElapsedTicks * 100) / percentof);

            timer = new Stopwatch();
            timer.Start();

            for (int i = 0; i < Reps; i++)
            {
                result = new MemberwiseClone().Clone(test);
            }

            timer.Stop();
            Console.WriteLine("Elapsed: {0,10} ({1}%)", timer.ElapsedTicks, (timer.ElapsedTicks * 100) / percentof);
        }
Example #2
0
        public void TestCloneSerializer()
        {
            TestObject[] copies = new TestObject[3];
            TestObject objB, objA = TestObject.Create();

            using (ObjectCloner cloner = new SerializerClone())
            {
                objB = cloner.Clone(objA);
                for (int i = 0; i < copies.Length; i++)
                    copies[i] = cloner.Clone(objB);
            }

            AssertDifferences(objA, objB);
            //not using serialization yields new instance of singleton
            Assert.IsTrue(Object.ReferenceEquals(objA.singletonData, objB.singletonData));
            //not using serializaiton skips all custom routines
            Assert.IsFalse(objA.customData.CustomData);
            Assert.IsFalse(objA.customData.Deserialized);
            Assert.IsTrue(objB.customData.CustomData);
            Assert.IsTrue(objB.customData.Deserialized);
        }
        public void TestCloneSerializer()
        {
            TestObject[] copies = new TestObject[3];
            TestObject   objB, objA = TestObject.Create();

            using (ObjectCloner cloner = new SerializerClone())
            {
                objB = cloner.Clone(objA);
                for (int i = 0; i < copies.Length; i++)
                {
                    copies[i] = cloner.Clone(objB);
                }
            }

            AssertDifferences(objA, objB);
            //not using serialization yields new instance of singleton
            Assert.IsTrue(Object.ReferenceEquals(objA.singletonData, objB.singletonData));
            //not using serializaiton skips all custom routines
            Assert.IsFalse(objA.customData.CustomData);
            Assert.IsFalse(objA.customData.Deserialized);
            Assert.IsTrue(objB.customData.CustomData);
            Assert.IsTrue(objB.customData.Deserialized);
        }
Example #4
0
        public void TestClonePerf()
        {
            const int Reps = 1000;
            TestObject test = TestObject.Create();
            object result;

            Stopwatch timer = new Stopwatch();
            timer.Start();

            for (int i = 0; i < Reps; i++)
            {
                BinaryFormatter bf = new BinaryFormatter();
                using (MemoryStream m = new MemoryStream())
                {
                    bf.Serialize(m, test);
                    m.Position = 0;
                    result = bf.Deserialize(m);
                }
            }

            timer.Stop();
            Console.WriteLine("Elapsed: {0,10} (100%)", timer.ElapsedTicks);
            long percentof = timer.ElapsedTicks;

            timer = new Stopwatch();
            timer.Start();

            for (int i = 0; i < Reps; i++)
            {
                result = new SerializerClone().Clone(test);
            }

            timer.Stop();
            Console.WriteLine("Elapsed: {0,10} ({1}%)", timer.ElapsedTicks, (timer.ElapsedTicks * 100) / percentof);

            timer = new Stopwatch();
            timer.Start();

            for (int i = 0; i < Reps; i++)
            {
                result = new MemberwiseClone().Clone(test);
            }

            timer.Stop();
            Console.WriteLine("Elapsed: {0,10} ({1}%)", timer.ElapsedTicks, (timer.ElapsedTicks * 100) / percentof);
        }
Example #5
0
 public void TestBadSerializer()
 {
     using (ObjectCloner c = new SerializerClone())
         c.Clone(new BadSerializer());
 }
 public void TestBadSerializer()
 {
     using (ObjectCloner c = new SerializerClone())
         c.Clone(new BadSerializer());
 }