Example #1
0
		public LargeStruct(MyRandom r)
		{
			m_val1 = r.Next();
			m_val2 = r.Next();
			m_val3 = r.Next();
			m_val4 = r.Next();
		}
Example #2
0
        public void Run()
        {
            Warmup();

            MyRandom rand = new MyRandom(123);

            RunTests(rand, typeof(U8Message), 6000000);
            RunTests(rand, typeof(S16Message), 6000000);
            RunTests(rand, typeof(S32Message), 6000000);
            RunTests(rand, typeof(S64Message), 5000000);

            RunTests(rand, typeof(PrimitivesMessage), 1000000);
            RunTests(rand, typeof(DictionaryMessage), 5000);

            RunTests(rand, typeof(ComplexMessage), 1000000);

            RunTests(rand, typeof(StringMessage), 600000);

            RunTests(rand, typeof(StructMessage), 2000000);

            RunTests(rand, typeof(BoxedPrimitivesMessage), 2000000);

            RunTests(rand, typeof(ByteArrayMessage), 5000);
            RunTests(rand, typeof(IntArrayMessage), 800);

            RunTests(rand, typeof(CustomSerializersMessage), 800);

            //Console.WriteLine("Press enter to quit");
            //Console.ReadLine();
        }
Example #3
0
        public BoxedPrimitivesMessage(MyRandom r)
        {
            m_bool = (r.Next() & 1) == 1;
            m_byte = (byte)r.Next();
            m_int = (int)r.Next();
            m_long = (long)r.Next();

            m_int = (int)r.Next();

            m_enum = (MyEnum)r.Next(0, 6);
        }
        public void Prepare()
        {
            if (Program.QuickRun)
            {
                m_numMessages = Math.Min(10, m_numMessages);
                m_loops       = 1;
            }

            var r = new MyRandom(123);

            var msgs = new T[m_numMessages];

            for (int i = 0; i < msgs.Length; ++i)
            {
                msgs[i] = m_creator(r);
            }
            m_messages = msgs;

            Console.WriteLine("== {0} {1} x {2}{3} ==", m_numMessages, typeof(T).Name, m_loops, m_direct ? " (direct)" : "");
        }
Example #5
0
        public void Prepare()
        {
            if (Program.QuickRun)
            {
                m_numMessages = Math.Min(10, m_numMessages);
                m_loops       = 1;
            }

            var r = new MyRandom(123);

            var msgs = new T[m_numMessages];

            for (int i = 0; i < msgs.Length; ++i)
            {
                msgs[i] = m_creator(r);
            }
            m_messages = msgs;

            Console.WriteLine("\n## {0} {1} x {2}{3} ", m_numMessages, typeof(T).Name, m_loops, m_direct ? " (direct)" : "");
            Console.WriteLine("|  Serializer   |          Test          |  time (ms)  |    GC coll.   |   size (B)  |");
            Console.WriteLine("| --------------| -----------------------| ------------| --------------| ------------|");
        }
Example #6
0
        public PrimitivesMessage(MyRandom r)
        {
            m_bool   = (r.Next() & 1) == 1;
            m_byte   = (byte)r.Next();
            m_sbyte  = (sbyte)r.Next();
            m_char   = (char)r.Next();
            m_ushort = (ushort)r.Next();
            m_short  = (short)r.Next();
            m_uint   = (uint)r.Next();
            m_int    = (int)r.Next();
            m_ulong  = (ulong)r.Next();
            m_long   = (long)r.Next();

            m_int = (int)r.Next();

            m_single = (float)r.NextDouble();
            m_double = r.NextDouble();

            m_enum = (MyEnum)r.Next(0, 6);

            m_date = DateTime.Now;
        }
Example #7
0
        public ComplexMessage(MyRandom r)
        {
            if (r.Next(100) == 0)
            {
                m_msg = null;
            }
            else
            {
                m_msg = new S16Message(r);
            }

            if (r.Next(100) == 0)
            {
                m_sealedClass = null;
            }
            else
            {
                m_sealedClass = new SimpleClass(r);
            }

            if (r.Next(100) == 0)
            {
                m_abstractMsg = null;
            }
            else
            {
                m_abstractMsg = new SimpleClass(r);
            }

            if (r.Next(100) == 0)
            {
                m_ifaceMsg = null;
            }
            else
            {
                m_ifaceMsg = new SimpleClass2(r);
            }
        }
Example #8
0
        public DictionaryMessage(MyRandom r)
        {
            var len = r.Next(0, 1000);

            if (len > 0)
            {
                m_intMap = new Dictionary <int, int>(len);
                for (int i = 0; i < len; ++i)
                {
                    m_intMap[(int)r.Next()] = (int)r.Next();
                }
            }

            len = r.Next(0, 1000);
            if (len > 0)
            {
                m_obMap = new Dictionary <string, SimpleClass2>();
                for (int i = 0; i < len; ++i)
                {
                    var str = i.ToString();
                    m_obMap[str] = new SimpleClass2(r);
                }
            }
        }
Example #9
0
 public U8Message(MyRandom r)
 {
     m_val = (byte)r.Next();
 }
Example #10
0
 public static IntArrayMessage Create(MyRandom r)
 {
     return(new IntArrayMessage(r));
 }
Example #11
0
 protected SimpleClassBase(MyRandom r)
 {
     m_val = (int)r.Next();
 }
Example #12
0
 public S64Message(MyRandom r)
 {
     m_val = (long)r.Next();
 }
Example #13
0
 public static BoxedPrimitivesMessage Create(MyRandom r)
 {
     return(new BoxedPrimitivesMessage(r));
 }
Example #14
0
		public ByteArrayMessage(MyRandom r)
		{
			int len = r.Next(100000);

			if (len == 0)
			{
				m_byteArr = null;
			}
			else
			{
				m_byteArr = new byte[len - 1];
				for (int i = 0; i < m_byteArr.Length; ++i)
					m_byteArr[i] = (byte)i;
			}
		}
Example #15
0
 public static DecimalMessage Create(MyRandom r)
 {
     return(new DecimalMessage(r));
 }
Example #16
0
		public PrimitivesMessage(MyRandom r)
		{
			m_bool = (r.Next() & 1) == 1;
			m_byte = (byte)r.Next();
			m_sbyte = (sbyte)r.Next();
			m_char = (char)r.Next();
			m_ushort = (ushort)r.Next();
			m_short = (short)r.Next();
			m_uint = (uint)r.Next();
			m_int = (int)r.Next();
			m_ulong = (ulong)r.Next();
			m_long = (long)r.Next();

			m_int = (int)r.Next();

			m_single = (float)r.NextDouble();
			m_double = r.NextDouble();

			m_enum = (MyEnum)r.Next(0, 6);

			m_date = DateTime.Now;
		}
Example #17
0
 public static S16Message Create(MyRandom r)
 {
     return(new S16Message(r));
 }
Example #18
0
		public static IntArrayMessage Create(MyRandom r)
		{
			return new IntArrayMessage(r);
		}
Example #19
0
		public StringMessage(MyRandom r)
		{
			int len = r.Next(100);

			if (len == 0)
				m_string = null;
			else
				//m_string = new string((char)r.Next(0xD7FF), len - 1);
				m_string = new string((char)r.Next((int)'a', (int)'z'), len - 1);
		}
Example #20
0
		public StructMessage(MyRandom r)
		{
			m_struct1.m_byte = (byte)r.Next();
			m_struct1.m_int = (int)r.Next();
			m_struct1.m_long = (long)r.Next();

			m_struct2.m_string = new string((char)r.Next((int)'a', (int)'z'), r.Next(0, 20));
			m_struct2.m_int = (int)r.Next();
		}
Example #21
0
		public IntArrayMessage(MyRandom r)
		{
			int len = r.Next(100000);

			if (len == 0)
			{
				m_intArr = null;
			}
			else
			{
				m_intArr = new int[len - 1];
				for (int i = 0; i < m_intArr.Length; ++i)
					m_intArr[i] = (int)r.Next();
			}
		}
Example #22
0
		public static ByteArrayMessage Create(MyRandom r)
		{
			return new ByteArrayMessage(r);
		}
Example #23
0
 public static SimpleClass2 Create(MyRandom r)
 {
     return(new SimpleClass2(r));
 }
Example #24
0
		public static S64Message Create(MyRandom r)
		{
			return new S64Message(r);
		}
Example #25
0
		public static StringMessage Create(MyRandom r)
		{
			return new StringMessage(r);
		}
Example #26
0
		public static BoxedPrimitivesMessage Create(MyRandom r)
		{
			return new BoxedPrimitivesMessage(r);
		}
Example #27
0
 public static CustomSerializersMessage Create(MyRandom r)
 {
     return(new CustomSerializersMessage(r));
 }
Example #28
0
		protected SimpleClassBase(MyRandom r)
		{
			m_val = (int)r.Next();
		}
Example #29
0
		public NullableDecimalMessage(MyRandom r)
		{
			if (r.Next(100) != 0)
				return;

			int[] bits = new int[4];
			bits[0] = (int)r.Next();
			bits[1] = (int)r.Next();
			bits[2] = (int)r.Next();

			uint exp = ((uint)r.Next(29)) << 16;
			exp |= ((r.Next() & 1) == 0 ? 0u : 1u) << 31;
			bits[3] = (int)exp;

			m_val = new decimal(bits);
		}
Example #30
0
		public static LargeStruct Create(MyRandom r)
		{
			return new LargeStruct(r);
		}
Example #31
0
 public S32Message(MyRandom r)
 {
     m_val = (int)r.Next();
 }
Example #32
0
		public SimpleClass(MyRandom r)
			: base(r)
		{
			m_val = (long)r.Next();
		}
Example #33
0
 public static NullableDecimalMessage Create(MyRandom r)
 {
     return(new NullableDecimalMessage(r));
 }
Example #34
0
		public SimpleClass2(MyRandom r)
		{
			m_val = (long)r.Next();
		}
Example #35
0
		public static SimpleClass2 Create(MyRandom r)
		{
			return new SimpleClass2(r);
		}
Example #36
0
		public DictionaryMessage(MyRandom r)
		{
			var len = r.Next(0, 1000);
			if (len > 0)
			{
				m_intMap = new Dictionary<int, int>(len);
				for (int i = 0; i < len; ++i)
					m_intMap[(int)r.Next()] = (int)r.Next();
			}

			len = r.Next(0, 1000);
			if (len > 0)
			{
				m_obMap = new Dictionary<string, SimpleClass2>();
				for (int i = 0; i < len; ++i)
				{
					var str = i.ToString();
					m_obMap[str] = new SimpleClass2(r);
				}
			}
		}
Example #37
0
 public static ByteArrayMessage Create(MyRandom r)
 {
     return(new ByteArrayMessage(r));
 }
Example #38
0
		public static DictionaryMessage Create(MyRandom r)
		{
			return new DictionaryMessage(r);
		}
Example #39
0
 public static StringMessage Create(MyRandom r)
 {
     return(new StringMessage(r));
 }
Example #40
0
		public ComplexMessage(MyRandom r)
		{
			if (r.Next(100) == 0)
				m_msg = null;
			else
				m_msg = new S16Message(r);

			if (r.Next(100) == 0)
				m_sealedClass = null;
			else
				m_sealedClass = new SimpleClass(r);

			if (r.Next(100) == 0)
				m_abstractMsg = null;
			else
				m_abstractMsg = new SimpleClass(r);

			if (r.Next(100) == 0)
				m_ifaceMsg = null;
			else
				m_ifaceMsg = new SimpleClass2(r);
		}
Example #41
0
 public SimpleClass(MyRandom r)
     : base(r)
 {
     m_val = (long)r.Next();
 }
Example #42
0
		public static ComplexMessage Create(MyRandom r)
		{
			return new ComplexMessage(r);
		}
Example #43
0
 public SimpleClass2(MyRandom r)
 {
     m_val = (long)r.Next();
 }
Example #44
0
		public TriDimArrayCustomSerializersMessage(MyRandom r)
		{
			int lx = r.Next(100) + 1;
			int ly = r.Next(70) + 1;
			int lz = r.Next(40) + 1;

			m_int3Arr = new int[lz, ly, lx];

			for (int z = 0; z < lz; ++z)
				for (int y = 0; y < ly; ++y)
					for (int x = 0; x < lx; ++x)
						m_int3Arr[z, y, x] = (int)r.Next();
		}
Example #45
0
 public static U8Message Create(MyRandom r)
 {
     return(new U8Message(r));
 }
Example #46
0
		public static TriDimArrayCustomSerializersMessage Create(MyRandom r)
		{
			return new TriDimArrayCustomSerializersMessage(r);
		}
Example #47
0
 public static DictionaryMessage Create(MyRandom r)
 {
     return(new DictionaryMessage(r));
 }
Example #48
0
		public U8Message(MyRandom r)
		{
			m_val = (byte)r.Next();
		}
Example #49
0
 public static ComplexMessage Create(MyRandom r)
 {
     return(new ComplexMessage(r));
 }
Example #50
0
		public static NullableDecimalMessage Create(MyRandom r)
		{
			return new NullableDecimalMessage(r);
		}
Example #51
0
 public S16Message(MyRandom r)
 {
     m_val = (short)r.Next();
 }
Example #52
0
 public static LargeStruct Create(MyRandom r)
 {
     return(new LargeStruct(r));
 }
Example #53
0
        void RunTests(MyRandom rand, Type msgType, int numMessages)
        {
            if (Program.QuickRun)
                numMessages = 50;

            Console.WriteLine("== {0} {1} ==", numMessages, msgType.Name);

            bool protobufCompatible = msgType.GetCustomAttributes(typeof(ProtoBuf.ProtoContractAttribute), false).Any();

            var msgs = MessageBase.CreateMessages(rand, msgType, numMessages);

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            Test(new MemStreamTest(m_serializer), msgs);
            if (Program.RunProtoBufTests && protobufCompatible)
                Test(new PBMemStreamTest(), msgs);

            Test(new NetTest(m_serializer), msgs);
            if (Program.RunProtoBufTests && protobufCompatible)
                Test(new PBNetTest(), msgs);
        }
Example #54
0
 public static TriDimArrayCustomSerializersMessage Create(MyRandom r)
 {
     return(new TriDimArrayCustomSerializersMessage(r));
 }
Example #55
0
		public static U8Message Create(MyRandom r)
		{
			return new U8Message(r);
		}
Example #56
0
		public S64Message(MyRandom r)
		{
			m_val = (long)r.Next();
		}