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); }
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 }
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 }