public void NewtonsoftTest() { // CompositeResolver.RegisterAndSetAsDefault( //new[] { TypelessFormatter.Instance }, //new[] { NativeDateTimeResolver.Instance, ContractlessStandardResolver.Instance }); // CompositeResolver.RegisterAndSetAsDefault( // // Resolve DateTime first // MessagePack.Resolvers.NativeDateTimeResolver.Instance, // MessagePack.Resolvers.StandardResolver.Instance, // MessagePack.Resolvers.BuiltinResolver.Instance, // // use PrimitiveObjectResolver // PrimitiveObjectResolver.Instance //); Console.WriteLine("开始异步测试"); var threadCount = 50; var finishCount = 0; for (int i = 0; i < threadCount; i++) { var thread = new Thread(() => { var newObj = new ContainerBag() { Key = Guid.NewGuid().ToString(), Name = Newtonsoft.Json.JsonConvert.SerializeObject(this), AddTime = SystemTime.Now.ToUniversalTime() }; var dtx = SystemTime.Now; var serializedObj = Newtonsoft.Json.JsonConvert.SerializeObject(newObj); Console.WriteLine($"Newtonsoft.Json.JsonConvert.SerializeObject 耗时:{SystemTime.DiffTotalMS(dtx)}ms"); dtx = SystemTime.Now; var containerBag = Newtonsoft.Json.JsonConvert.DeserializeObject <ContainerBag>(serializedObj);//11ms Console.WriteLine($"Newtonsoft.Json.JsonConvert.DeserializeObject 耗时:{SystemTime.DiffTotalMS(dtx)}ms"); Console.WriteLine(containerBag.AddTime.ToUniversalTime()); //Assert.AreEqual(containerBag.AddTime.Ticks, newObj.AddTime.Ticks); Assert.AreNotEqual(containerBag.GetHashCode(), newObj.GetHashCode()); finishCount++; }); thread.Start(); } while (finishCount < threadCount) { //等待 } }
public void StackExchangeRedisExtensionsTest() { Console.WriteLine("开始异步测试"); var threadCount = 100; var finishCount = 0; for (int i = 0; i < threadCount; i++) { var thread = new Thread(() => { var newObj = new ContainerBag() { Key = Guid.NewGuid().ToString(), Name = Newtonsoft.Json.JsonConvert.SerializeObject(this), AddTime = SystemTime.Now }; var dtx = SystemTime.Now; var serializedObj = CacheSerializeExtension.SerializeToCache(newObj); Console.WriteLine($"StackExchangeRedisExtensions.Serialize耗时:{SystemTime.DiffTotalMS(dtx)}ms"); dtx = SystemTime.Now; var containerBag = CacheSerializeExtension.DeserializeFromCache <ContainerBag>((string)serializedObj);//11ms Console.WriteLine($"StackExchangeRedisExtensions.Deserialize耗时:{SystemTime.DiffTotalMS(dtx)}ms"); Assert.AreEqual(containerBag.AddTime.Ticks, newObj.AddTime.Ticks); Assert.AreNotEqual(containerBag.GetHashCode(), newObj.GetHashCode()); finishCount++; }); thread.Start(); } while (finishCount < threadCount) { //等待 } Action action = () => { var newObj = new ContainerBag() { Key = Guid.NewGuid().ToString(), Name = Newtonsoft.Json.JsonConvert.SerializeObject(this), AddTime = SystemTime.Now }; var dtx = SystemTime.Now; var serializedObj = CacheSerializeExtension.SerializeToCache(newObj); Console.WriteLine($"StackExchangeRedisExtensions.Serialize耗时:{SystemTime.DiffTotalMS(dtx)}ms"); dtx = SystemTime.Now; var containerBag = CacheSerializeExtension.DeserializeFromCache <ContainerBag>((string)serializedObj);//11ms Console.WriteLine($"StackExchangeRedisExtensions.Deserialize耗时:{SystemTime.DiffTotalMS(dtx)}ms"); Assert.AreEqual(containerBag.AddTime.Ticks, newObj.AddTime.Ticks); Assert.AreNotEqual(containerBag.GetHashCode(), newObj.GetHashCode()); }; Console.WriteLine("开始同步测试"); for (int i = 0; i < 10; i++) { action(); } }