public LargeStruct(MyRandom r) { m_val1 = r.Next(); m_val2 = r.Next(); m_val3 = r.Next(); m_val4 = r.Next(); }
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(); }
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)" : ""); }
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("| --------------| -----------------------| ------------| --------------| ------------|"); }
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; }
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); } }
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); } } }
public U8Message(MyRandom r) { m_val = (byte)r.Next(); }
public static IntArrayMessage Create(MyRandom r) { return(new IntArrayMessage(r)); }
protected SimpleClassBase(MyRandom r) { m_val = (int)r.Next(); }
public S64Message(MyRandom r) { m_val = (long)r.Next(); }
public static BoxedPrimitivesMessage Create(MyRandom r) { return(new BoxedPrimitivesMessage(r)); }
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; } }
public static DecimalMessage Create(MyRandom r) { return(new DecimalMessage(r)); }
public static S16Message Create(MyRandom r) { return(new S16Message(r)); }
public static IntArrayMessage Create(MyRandom r) { return new IntArrayMessage(r); }
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); }
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(); }
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(); } }
public static ByteArrayMessage Create(MyRandom r) { return new ByteArrayMessage(r); }
public static SimpleClass2 Create(MyRandom r) { return(new SimpleClass2(r)); }
public static S64Message Create(MyRandom r) { return new S64Message(r); }
public static StringMessage Create(MyRandom r) { return new StringMessage(r); }
public static BoxedPrimitivesMessage Create(MyRandom r) { return new BoxedPrimitivesMessage(r); }
public static CustomSerializersMessage Create(MyRandom r) { return(new CustomSerializersMessage(r)); }
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); }
public static LargeStruct Create(MyRandom r) { return new LargeStruct(r); }
public S32Message(MyRandom r) { m_val = (int)r.Next(); }
public SimpleClass(MyRandom r) : base(r) { m_val = (long)r.Next(); }
public static NullableDecimalMessage Create(MyRandom r) { return(new NullableDecimalMessage(r)); }
public SimpleClass2(MyRandom r) { m_val = (long)r.Next(); }
public static SimpleClass2 Create(MyRandom r) { return new SimpleClass2(r); }
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); } } }
public static ByteArrayMessage Create(MyRandom r) { return(new ByteArrayMessage(r)); }
public static DictionaryMessage Create(MyRandom r) { return new DictionaryMessage(r); }
public static StringMessage Create(MyRandom r) { return(new StringMessage(r)); }
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); }
public static ComplexMessage Create(MyRandom r) { return new ComplexMessage(r); }
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(); }
public static U8Message Create(MyRandom r) { return(new U8Message(r)); }
public static TriDimArrayCustomSerializersMessage Create(MyRandom r) { return new TriDimArrayCustomSerializersMessage(r); }
public static DictionaryMessage Create(MyRandom r) { return(new DictionaryMessage(r)); }
public static ComplexMessage Create(MyRandom r) { return(new ComplexMessage(r)); }
public static NullableDecimalMessage Create(MyRandom r) { return new NullableDecimalMessage(r); }
public S16Message(MyRandom r) { m_val = (short)r.Next(); }
public static LargeStruct Create(MyRandom r) { return(new LargeStruct(r)); }
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); }
public static TriDimArrayCustomSerializersMessage Create(MyRandom r) { return(new TriDimArrayCustomSerializersMessage(r)); }
public static U8Message Create(MyRandom r) { return new U8Message(r); }