Exemplo n.º 1
0
 public void TestCompress()
 {
     byte[] bs = new byte[] { 1, 2, 3, 1, 23, 12, 41, 31, 3, 1, 21, 1, 1, 21, 1, 21 };
     Debug.Log(bs.Length);
     byte[] outbys = CompressBase.CompressBytes(bs);
     Debug.Log(outbys.Length);
     outbys = CompressBase.DecompressBytes(outbys);
     Debug.Log(outbys.Length);
 }
Exemplo n.º 2
0
        public void TestSeralizePerformance()
        {
            int dataCount = 1000;
            int iteration = 1000;


            Class1 class1 = new Class1();

            class1.ArrayValue = new int[] { 1, 2, 3, 4, 5 };
            class1.Class2.s   = "classsedwqdsavdddddddddddddddddsdasdasddddddddddddddddd"
                                + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
                                + "sdasddddddddddddddddd" + "asddddddddddddddd"
                                + "dasddddddddddddddddddddddxcvxcvxcvxcv"
                                + "cxvcxxxxxxxxxxxxxxxxxxxxxxxxczxcsadasdasdasdssssss";
            class1.b = true;
            class1.i = 12312;
            for (int i = 0; i < dataCount; i++)
            {
                class1.listValue.Add(i);
            }

            /*     class1.Dictionary[1] = "dsasdasd";
             *   class1.Dictionary[2] = "ddscccxz";*/
            class1.s = "192.168.1.37";

            Iterations iterations = new Iterations();

            for (int i = 0; i < iteration; i++)
            {
                iterations.class1s.Add(class1);
            }

            #region 序列化反序列化性能

            Stopwatch watch = new Stopwatch();
            byte[]    bytes = null; Iterations iterations1;
            byte[]    CompBbytes;
            {
                watch.Restart();
                bytes = BitSerializer.Seralize(iterations);
                watch.Stop();
                UnityEngine.Debug.Log("Bit seralizeTime:" + watch.ElapsedMilliseconds);
                // string s = ProtocolSerialize.DebugSeralizeStr(bytes);
                watch.Restart();
                iterations1 = BitSerializer.Deseralize(typeof(Iterations), bytes) as Iterations;
                watch.Stop();
                UnityEngine.Debug.Log("Bit DeseralizeTime:" + watch.ElapsedMilliseconds);


                #region 大小

                UnityEngine.Debug.Log("Protocol序列化:" + bytes.Length);
                CompBbytes = CompressBase.CompressBytes(bytes);
                UnityEngine.Debug.Log("压缩后:" + CompBbytes.Length);

                #endregion
            }
            {
                watch.Restart();
                ExtendProtocolSerialize.Enable();
                bytes = ProtocolSerialize.Seralize(iterations);
                watch.Stop();
                UnityEngine.Debug.Log("seralizeTime:" + watch.ElapsedMilliseconds);
                // string s = ProtocolSerialize.DebugSeralizeStr(bytes);
                watch.Restart();
                iterations1 = ProtocolSerialize.Deseralize(typeof(Iterations), bytes) as Iterations;
                watch.Stop();
                UnityEngine.Debug.Log("DeseralizeTime:" + watch.ElapsedMilliseconds);


                #region 大小

                UnityEngine.Debug.Log("Protocol序列化:" + bytes.Length);
                CompBbytes = CompressBase.CompressBytes(bytes);
                UnityEngine.Debug.Log("压缩后:" + CompBbytes.Length);

                #endregion
            }
            {
                watch.Restart();
                var json = UnityEngine.JsonUtility.ToJson(iterations);

                watch.Stop();
                UnityEngine.Debug.Log("json seralizeTime:" + watch.ElapsedMilliseconds);
                // string s = ProtocolSerialize.DebugSeralizeStr(bytes);
                watch.Restart();
                iterations1 = UnityEngine.JsonUtility.FromJson <Iterations>(json);
                watch.Stop();
                UnityEngine.Debug.Log("json DeseralizeTime:" + watch.ElapsedMilliseconds);
            }
            #endregion
        }
Exemplo n.º 3
0
        public void TestSeralizePerformance()
        {
            ExtendProtocolSerialize.Enable();
            Class1 class1 = new Class1();

            class1.Class2.s = "classsedwqdsavdddddddddddddddddsdasdasddddddddddddddddd"
                              + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
                              + "sdasddddddddddddddddd" + "asddddddddddddddd"
                              + "dasddddddddddddddddddddddxcvxcvxcvxcv"
                              + "cxvcxxxxxxxxxxxxxxxxxxxxxxxxczxcsadasdasdasdssssss";
            class1.b = true;
            class1.i = 12312;

            int TestCont = 100;

            for (int i = 0; i < 1000; i++)
            {
                class1.listValue.Add((byte)i);
            }
            class1.ArrayValue = class1.listValue.ToArray();

            /*     class1.Dictionary[1] = "dsasdasd";
             *   class1.Dictionary[2] = "ddscccxz";*/
            class1.s = "192.168.1.37";
            #region 序列化反序列化性能

            Stopwatch watch = new Stopwatch();
            watch.Start();
            byte[] bytes = null;
            for (int i = 0; i < TestCont; i++)
            {
                bytes = ProtocolSerialize.Seralize(class1);
            }
            watch.Stop();
            UnityEngine.Debug.Log("seralizeTime:" + watch.ElapsedMilliseconds);
            string s = ProtocolSerialize.DebugSeralizeStr(bytes);
            watch.Restart();
            for (int i = 0; i < TestCont; i++)
            {
                Class1 class11 = ProtocolSerialize.Deseralize(typeof(Class1), bytes) as Class1;
            }
            watch.Stop();
            UnityEngine.Debug.Log("DeseralizeTime:" + watch.ElapsedMilliseconds);

            /* watch.Restart();
             * for (int i = 0; i < TestCont; i++)
             * {
             *   class1.ToByteArray();//2进制流输出
             * }
             * watch.Stop();
             * UnityEngine.Debug.Log("binaryBytesTime:" + watch.ElapsedMilliseconds);
             */
            watch.Restart();
            for (int i = 0; i < TestCont; i++)
            {
                UnityEngine.JsonUtility.ToJson(class1);
            }
            watch.Stop();
            UnityEngine.Debug.Log("seralize json:" + watch.ElapsedMilliseconds);
            s = UnityEngine.JsonUtility.ToJson(class1);
            watch.Restart();
            for (int i = 0; i < TestCont; i++)
            {
                UnityEngine.JsonUtility.FromJson <Class1>(s);
            }
            watch.Stop();
            UnityEngine.Debug.Log("DeseralizeTime json:" + watch.ElapsedMilliseconds);
            #endregion

            #region 大小

            byte[] binaryBytes = class1.ToByteArray();//2进制流输出
            UnityEngine.Debug.Log("二进制流直接输出:" + binaryBytes.Length);
            byte[] CompBinartBytes = CompressBase.CompressBytes(binaryBytes);
            UnityEngine.Debug.Log("压缩后:" + CompBinartBytes.Length);

            bytes = ProtocolSerialize.Seralize(class1);
            UnityEngine.Debug.Log("Protocol序列化:" + bytes.Length);
            byte[] CompBbytes = CompressBase.CompressBytes(bytes);
            UnityEngine.Debug.Log("压缩后:" + CompBbytes.Length);



            string base64 = Convert.ToBase64String(bytes);
            UnityEngine.Debug.Log("base64:" + base64.Length);

            string str       = UnityEngine.JsonUtility.ToJson(class1);// json.Serialize(class1);
            byte[] jsonbytes = Encoding.UTF8.GetBytes(str);
            UnityEngine.Debug.Log("Json序列化:" + jsonbytes.Length);
            byte[] Compjsonbytes = CompressBase.CompressBytes(jsonbytes);
            UnityEngine.Debug.Log("压缩后:" + Compjsonbytes.Length);
            jsonbytes = CompressBase.DecompressBytes(Compjsonbytes);
            str       = Encoding.UTF8.GetString(jsonbytes);
            int a = 0;

            #endregion
        }