Mercurial > pub > ImplabNet
comparison MonoPlay/Program.cs @ 183:4f82e0f161c3 ref20160224
fixed DFA optimization, JSON is fully functional
author | cin |
---|---|
date | Fri, 25 Mar 2016 02:49:02 +0300 |
parents | 97fbbf816844 |
children | d45bdf510514 |
comparison
equal
deleted
inserted
replaced
182:76e8f2ba12b8 | 183:4f82e0f161c3 |
---|---|
1 using System; | 1 using System; |
2 using Implab; | 2 using Implab; |
3 using System.Threading.Tasks; | 3 using System.Threading.Tasks; |
4 using Implab.Formats.JSON; | |
5 using System.IO; | |
6 using System.Text.Json; | |
4 | 7 |
5 namespace MonoPlay { | 8 namespace MonoPlay { |
6 class MainClass { | 9 class MainClass { |
7 | 10 |
8 | 11 |
9 public static void Main(string[] args) { | 12 public static void Main(string[] args) { |
10 if (args == null) | 13 if (args == null) |
11 throw new ArgumentNullException("args"); | 14 throw new ArgumentNullException("args"); |
15 int t1, t2; | |
12 | 16 |
13 var t1 = Environment.TickCount; | 17 for (int i = 0; i < 2; i++) { |
18 t1 = Environment.TickCount; | |
19 int elements =0; | |
20 using (var reader = new JSONParser(File.OpenText("/home/sergey/temp/citylots.json"))) { | |
21 while (reader.Read()) | |
22 elements++; | |
23 } | |
14 | 24 |
15 DoWork().GetAwaiter().GetResult(); | 25 t2 = Environment.TickCount; |
26 Console.WriteLine("attempt {0} done: {1} ms, {2:.00} Mb, {3} GC, Elements: {4}",i+1, t2 - t1, GC.GetTotalMemory(false) / (1024*1024), GC.CollectionCount(0), elements ); | |
27 } | |
16 | 28 |
17 var t2 = Environment.TickCount; | 29 Console.WriteLine("Syste.Text.Json"); |
18 Console.WriteLine("done: {0} ms, {1:.00} Mb, {2} GC", t2 - t1, GC.GetTotalMemory(false) / (1024*1024), GC.CollectionCount(0) ); | 30 var paraser = new JsonParser(); |
31 for (int i = 0; i < 2; i++) { | |
32 t1 = Environment.TickCount; | |
33 using (var reader = File.OpenText("/home/sergey/temp/citylots.json")) { | |
34 paraser.Parse(reader); | |
35 } | |
19 | 36 |
20 } | 37 t2 = Environment.TickCount; |
38 Console.WriteLine("attempt {0} done: {1} ms, {2:.00} Mb, {3} GC, ",i+1, t2 - t1, GC.GetTotalMemory(false) / (1024*1024), GC.CollectionCount(0)); | |
39 } | |
21 | 40 |
22 static IPromise<int> DoItem(int x) { | |
23 //return Promise<int>.FromResult(x + 1); | |
24 var p = new Promise<int>(); | |
25 p.Resolve(x+1); | |
26 return p; | |
27 } | |
28 | 41 |
29 static async Task<int> DoWork() { | |
30 var c = 0; | |
31 for (int i = 0; i < 10000000; i++) | |
32 c = await DoItem(c); | |
33 return c; | |
34 } | 42 } |
35 | 43 |
36 } | 44 } |
37 } | 45 } |