static void Serialize3() { try { var id = Guid.NewGuid().ToString("N").ToUpper(); IMessageItem message = new MessageItem { ID = id, State = MessageState.Accept, Topic = "Topic", Title = "Title", Content = @"{""Value"": ""Content""}", Trace = TraceInfo.New(id), Result = @"{""Value"": ""Result""}" }; JsonSerializer.Serialize(message); DateTime start = DateTime.Now; for (int i = 0; i < testCount; i++) { JsonSerializer.Serialize(message); } var time = (DateTime.Now - start).TotalSeconds; Console.WriteLine($"{time}s {testCount / time} qps"); } catch (Exception ex) { Console.WriteLine($"发生异常\n{ex}"); } }
static void Serialize() { try { var id = Guid.NewGuid().ToString("N").ToUpper(); IMessageItem message = new MessageItem { ID = id, State = MessageState.Accept, Topic = "Topic", Title = "Title", Content = @"{""Value"": ""Content""}", Trace = TraceInfo.New(id), Result = @"{""Value"": ""Result""}" }; Task.Factory.StartNew(() => { JsonSerializerOptions option2 = new JsonSerializerOptions { IgnoreNullValues = true, WriteIndented = false, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, PropertyNameCaseInsensitive = true //PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; DateTime start = DateTime.Now; Parallel.For(0, testCount, (idx) => JsonSerializer.Serialize(new MessageItem { ID = id, State = MessageState.Accept, Topic = "Topic", Title = "Title", Content = @"{""Value"": ""Content""}", Trace = TraceInfo.New(id), Result = @"{""Value"": ""Result""}" }, option)); var time = (DateTime.Now - start).TotalSeconds; Console.WriteLine($"{testCount / time} /s"); }); //Task.Factory.StartNew(() => //{ // JsonSerializerOptions option2 = new JsonSerializerOptions // { // IgnoreNullValues = true, // WriteIndented = false, // Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, // PropertyNameCaseInsensitive = true // //PropertyNamingPolicy = JsonNamingPolicy.CamelCase // }; // DateTime start = DateTime.Now; // Parallel.For(0, testCount, (idx) => JsonSerializer.Serialize(message, option2)); // var time = (DateTime.Now - start).TotalSeconds; // Console.WriteLine($"{testCount / time} /s"); //}); //Task.Factory.StartNew(() => //{ // DateTime start = DateTime.Now; // Parallel.For(0, testCount, (idx) => JsonSerializer.Serialize(message, new JsonSerializerOptions // { // IgnoreNullValues = true, // WriteIndented = false, // Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, // PropertyNameCaseInsensitive = true // //PropertyNamingPolicy = JsonNamingPolicy.CamelCase // })); // var time = (DateTime.Now - start).TotalSeconds; // Console.WriteLine($"{testCount / time} /s"); //}); } catch (Exception ex) { Console.WriteLine($"发生异常\n{ex}"); } }