static byte[] EncodeTestData(EncoderTarget encoderTarget, string data) { if (encoderTarget == EncoderTarget.InvariantUtf16 || encoderTarget == EncoderTarget.SlowUtf16) { return(Encoding.Unicode.GetBytes(data)); } else { return(Encoding.UTF8.GetBytes(data)); } }
public void ReaderSystemTextJsonHelloWorld(EncoderTarget encoderTarget) { var encoder = GetTargetEncoder(encoderTarget); var data = EncodeTestData(encoderTarget, TestJson.HelloWorld); foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { for (int i = 0; i < Benchmark.InnerIterationCount; i++) { TestReaderSystemTextJson(data, encoder); } } } }
public void WriterSystemTextJsonBasic(bool formatted, EncoderTarget encoderTarget) { var encoder = GetTargetEncoder(encoderTarget); var f = new ArrayFormatter(BufferSize, encoder); foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { for (int i = 0; i < Benchmark.InnerIterationCount; i++) { f.Clear(); TestWriterSystemTextJsonBasic(formatted, f); } } } }
public void ReaderNewtonsoftHelloWorld(EncoderTarget encoderTarget) { var enc = encoderTarget == EncoderTarget.InvariantUtf8 ? Encoding.UTF8 : Encoding.Unicode; var data = EncodeTestData(encoderTarget, TestJson.HelloWorld); var mem = new MemoryStream(data); var reader = new StreamReader(mem, enc, false, 1024, true); foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { for (int i = 0; i < Benchmark.InnerIterationCount; i++) { mem.Seek(0, SeekOrigin.Begin); TestReaderNewtonsoft(reader); } } } }
public void WriterNewtonsoftBasic(bool formatted, EncoderTarget encoderTarget) { var enc = encoderTarget == EncoderTarget.InvariantUtf8 ? Encoding.UTF8 : Encoding.Unicode; var buffer = new byte[BufferSize]; var mem = new MemoryStream(buffer); var sw = new StreamWriter(mem, enc, BufferSize, true); foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { for (int i = 0; i < Benchmark.InnerIterationCount; i++) { mem.Seek(0, SeekOrigin.Begin); TestWriterNewtonsoftBasic(formatted, sw); } } } }
static SymbolTable GetTargetEncoder(EncoderTarget target) { switch (target) { case EncoderTarget.InvariantUtf8: return(SymbolTable.InvariantUtf8); case EncoderTarget.InvariantUtf16: return(SymbolTable.InvariantUtf16); case EncoderTarget.SlowUtf8: return(new FakeUtf8SymbolTable()); case EncoderTarget.SlowUtf16: return(new FakeUtf16SymbolTable()); default: Assert.True(false, "Invalid encoder targetted in test"); return(null); } }
static TextEncoder GetTargetEncoder(EncoderTarget target) { switch (target) { case EncoderTarget.InvariantUtf8: return(TextEncoder.Utf8); case EncoderTarget.InvariantUtf16: return(TextEncoder.Utf16); case EncoderTarget.SlowUtf8: return(TextEncoder.CreateUtf8Encoder(Utf8DigitsAndSymbols)); case EncoderTarget.SlowUtf16: return(TextEncoder.CreateUtf16Encoder(Utf16DigitsAndSymbols)); default: Assert.True(false, "Invalid encoder targetted in test"); return(null); } }
public ArrayFormatterParam(EncoderTarget target) { _target = target; }