comparison Implab.Format.Test/JsonTests.cs @ 236:302ca905c19e v2

JsonReader optimizations
author cin
date Tue, 21 Nov 2017 14:57:58 +0300
parents 5f7a3e1d32b9
children
comparison
equal deleted inserted replaced
235:b49969a7043c 236:302ca905c19e
8 using System.IO; 8 using System.IO;
9 9
10 namespace Implab.Format.Test { 10 namespace Implab.Format.Test {
11 [TestFixture] 11 [TestFixture]
12 public class JsonTests { 12 public class JsonTests {
13 13
14 [Test] 14 [Test]
15 public void TestScannerValidTokens() { 15 public void TestScannerValidTokens() {
16 using (var scanner = JsonStringScanner.Create(@"9123, -123, 0, 0.1, -0.2, -0.1e3, 1.3E-3, ""some \t\n\u0020 text"", literal []{}:")) { 16 using (var scanner = JsonStringScanner.Create(@"9123, -123, 0, 0.1, -0.2, -0.1e3, 1.3E-3, ""some \t\n\u0020 text"", literal []{}:")) {
17 17
18 Tuple<JsonTokenType, object>[] expexted = { 18 Tuple<JsonTokenType, object>[] expexted = {
112 DumpJsonParse("{\"one\":1, \"two\":2}"); 112 DumpJsonParse("{\"one\":1, \"two\":2}");
113 DumpJsonParse("[1,\"\",2,3]"); 113 DumpJsonParse("[1,\"\",2,3]");
114 DumpJsonParse("[{\"info\": [7,8,9]}]"); 114 DumpJsonParse("[{\"info\": [7,8,9]}]");
115 DumpJsonFlatParse("[1,2,\"\",[3,4],{\"info\": [5,6]},{\"num\": [7,8,null]}, null,[null]]"); 115 DumpJsonFlatParse("[1,2,\"\",[3,4],{\"info\": [5,6]},{\"num\": [7,8,null]}, null,[null]]");
116 } 116 }
117 117
118 [Test]
119 public void JsonBenchmark() {
120 var t = Environment.TickCount;
121 using (var reader = new JsonXmlReader(JsonReader.Create("e:\\citylots.json"), new JsonXmlReaderOptions { NamespaceUri = "XmlReaderSimpleTest", RootName = "data" })) {
122 while (reader.Read()) {
123 }
124 }
125 Console.WriteLine($"JsonXmlReader: {Environment.TickCount - t} ms");
126
127 t = Environment.TickCount;
128 using(var reader = JsonReader.Create("e:\\citylots.json")) {
129 while(reader.Read()) {
130 }
131 }
132
133 Console.WriteLine($"JsonReader: {Environment.TickCount - t} ms");
134
135 t = Environment.TickCount;
136 using (var reader = XmlReader.Create("file:///e:\\citylots.xml")) {
137 while (reader.Read()) {
138 }
139 }
140
141 Console.WriteLine($"XmlReader: {Environment.TickCount - t} ms");
142 }
143
118 void AssertRead(XmlReader reader, XmlNodeType expected) { 144 void AssertRead(XmlReader reader, XmlNodeType expected) {
119 Assert.IsTrue(reader.Read()); 145 Assert.IsTrue(reader.Read());
120 Console.WriteLine($"{new string(' ', reader.Depth*2)}{reader}"); 146 Console.WriteLine($"{new string(' ', reader.Depth * 2)}{reader}");
121 Assert.AreEqual(expected, reader.NodeType); 147 Assert.AreEqual(expected, reader.NodeType);
122 } 148 }
123 149
124 void DumpJsonParse(string json) { 150 void DumpJsonParse(string json) {
125 Console.WriteLine($"JSON: {json}"); 151 Console.WriteLine($"JSON: {json}");