Exemple #1
0
        public void Test_ModerateObject(int cnt, bool par)
        {
            var json = @"{ a: 1, b: true, c: 3, d: { a: ""qweqweqwewqeqw"", b: ""werwerwrwrwe6778687"" }, e: [ 1, 2, null, null, 3, 4, {a: 1}, {a: 2}] }";

            void body()
            {
                var got = JsonReader.DeserializeDataObject(json);

                Aver.IsNotNull(got);
            }

            var time = Timeter.StartNew();

            if (par)
            {
                Parallel.For(0, cnt, i => body());
            }
            else
            {
                for (var i = 0; i < cnt; i++)
                {
                    body();
                }
            }

            time.Stop();

            "Did {0:n0} in {1:n1} sec at {2:n0} ops/sec".SeeArgs(cnt, time.ElapsedSec, cnt / time.ElapsedSec);
        }
Exemple #2
0
        public void Test_Primitives(int cnt, bool par)
        {
            var json = @"{ a: 1, b: 2, c: true, d: null, e: false, f: false, g: true, i1: 3, i4: 2, i5: 125, i6: 18, f1: true, f2: true, f3: false,
       i10: 1,i11: 21,i12: 1,i13: 143,i14: 343, i15: 89, i16: 23,
       f10: true, f11: true, f12: false, f13: false, f14: false, f15: true, f16: true, f17: false, f18: true
      }";

            void body()
            {
                var got = JsonReader.DeserializeDataObject(json);

                Aver.IsNotNull(got);
            }

            var time = Timeter.StartNew();

            if (par)
            {
                Parallel.For(0, cnt, i => body());
            }
            else
            {
                for (var i = 0; i < cnt; i++)
                {
                    body();
                }
            }

            time.Stop();

            "Did {0:n0} in {1:n1} sec at {2:n0} ops/sec".SeeArgs(cnt, time.ElapsedSec, cnt / time.ElapsedSec);
        }
Exemple #3
0
        public void Test_SimpleObject(int cnt, bool par)
        {
            var json = @"{ a: 1, b: ""something"", c: null, d: {}, e: 23.7}";

            void body()
            {
                var got = JsonReader.DeserializeDataObject(json);

                Aver.IsNotNull(got);
            }

            var time = Timeter.StartNew();

            if (par)
            {
                Parallel.For(0, cnt, i => body());
            }
            else
            {
                for (var i = 0; i < cnt; i++)
                {
                    body();
                }
            }

            time.Stop();

            "Did {0:n0} in {1:n1} sec at {2:n0} ops/sec".SeeArgs(cnt, time.ElapsedSec, cnt / time.ElapsedSec);
        }
Exemple #4
0
        protected async override Task <SaveResult <ChangeResult> > DoSaveAsync()
        {
            var t = Timeter.StartNew();
            await m_Chronicle.WriteAsync(this).ConfigureAwait(false);

            return(new SaveResult <ChangeResult>(new ChangeResult(ChangeResult.ChangeType.Inserted, Data.Length, $"Done in {t.ElapsedMs} ms", null)));
        }
Exemple #5
0
        public void Test2()
        {
            var time = new Timeter();

            Aver.IsFalse(time.IsStarted);
            Aver.AreEqual(0, time.ElapsedRaw);
            Aver.AreEqual(0, time.ElapsedMs);
            Thread.Sleep(500);
            Aver.IsFalse(time.IsStarted);
            Aver.AreEqual(0, time.ElapsedRaw);
            Aver.AreEqual(0, time.ElapsedMs);

            time.Start();
            Aver.IsTrue(time.IsStarted);
            Thread.Sleep(500);
            time.Stop();

            var ems = time.ElapsedMs;
            var el  = time.Elapsed;

            Aver.IsFalse(time.IsStarted);
            Aver.IsTrue(ems >= 500 && ems <= 525);
            Aver.IsTrue(el.TotalMilliseconds >= 500 && el.TotalMilliseconds <= 525);
            Thread.Sleep(500);

            ems = time.ElapsedMs;
            el  = time.Elapsed;
            Aver.IsFalse(time.IsStarted);
            Aver.IsTrue(ems >= 500 && ems <= 525);
            Aver.IsTrue(el.TotalMilliseconds >= 500 && el.TotalMilliseconds <= 525);

            time.Start();
            Aver.IsTrue(time.IsStarted);
            Thread.Sleep(250);

            ems = time.ElapsedMs;
            el  = time.Elapsed;
            Aver.IsTrue(time.IsStarted);
            Aver.IsTrue(ems >= 750 && ems <= 800);
            Aver.IsTrue(el.TotalMilliseconds >= 750 && el.TotalMilliseconds <= 800);
            time.Stop();
            Aver.IsFalse(time.IsStarted);
            ems = time.ElapsedMs;
            el  = time.Elapsed;
            "Elapsed {0} ms / {1} timespan".SeeArgs(ems, el);
            Aver.IsTrue(ems >= 750 && ems <= 800);
            Aver.IsTrue(el.TotalMilliseconds >= 750 && el.TotalMilliseconds <= 800);


            Thread.Sleep(300);

            ems = time.ElapsedMs;
            el  = time.Elapsed;
            "Elapsed {0} ms / {1} timespan".SeeArgs(ems, el);
            Aver.IsFalse(time.IsStarted);
            Aver.IsTrue(ems >= 750 && ems <= 800);
            Aver.IsTrue(el.TotalMilliseconds >= 750 && el.TotalMilliseconds <= 800);
        }
Exemple #6
0
        public void Test_ComplexObject(int cnt, bool par)
        {
            var json = @"
      { a: 1, b: true, c: 3, 
        d: { a: ""qweqweqwewqeqw"", b: ""werwerwrwrwe6778687"" },
        e: [ 1, 2, null, null, 3, 4, {a: 1}, {a: 2}],
        ""person"": {""first-name"": ""oleg"", ""last-name"": ""ogurzov"", age: 127},
        ""doctor"": {""first-name"": ""Venni"", ""last-name"": ""Smekhov"", age: 27},
        ""patient"": {""first-name"": ""oleg"", ""last-name"": ""popov"", age: 98, prokofiev: { influence: ""shostakovich"", when: ""12 January 1980 3:47 pm""}},
        ""singer"": {""first-name"": ""Alla"", ""last-name"": ""Pugacheva"", age: 127},
        flag1: true,
        flag2: true,
        flag3: null,
        data: {array: [

                     { a: 1, b: true, c: 3, d: { a: ""qweqweqwewqeqw"", b: ""werwerwrwrwe6778687"" }, e: [ 1, 2, null, null, 3, 4, {a: 1}, {a: 2}] },
                     { a: -5, b: false, c: 23, d: { a: ""34 34 5343 34 qweqweqwewqeqw"", b: ""w687"" }, e: [ null, 2, null, null, 3, 4, {a: 1}, {a: 2}] }

                      ]},
        flag4: true,
        flag5: false,
        flag6: true,
        notes: [""aaa"", ""bbb"",""ddd"", null, null, [{a: 1},{},{},{},{},{},[],[2, true, true],[1,0],[]]]
       }";

            void body()
            {
                var got = JsonReader.DeserializeDataObject(json);

                Aver.IsNotNull(got);
            }

            var time = Timeter.StartNew();

            if (par)
            {
                Parallel.For(0, cnt, i => body());
            }
            else
            {
                for (var i = 0; i < cnt; i++)
                {
                    body();
                }
            }

            time.Stop();

            "Did {0:n0} in {1:n1} sec at {2:n0} ops/sec".SeeArgs(cnt, time.ElapsedSec, cnt / time.ElapsedSec);
        }
Exemple #7
0
        public void Test_TypicalPerson(int cnt, bool par)
        {
            var json = @"{ 
FirstName: 'Dodik',
LastName: 'Bonderman',
MiddleName: 'Boruch',
Address1: '150 Yasha Kutz Drive #380A',
Address2: '2nd flr',
City: 'Yerevan',
State: 'Arunachala',
Zip: 'WAQ-223322',
Phone: '+44-223-322-234',
Text: null,
EMail: '*****@*****.**',
DOB: 'January 1, 1980',
YearsInService: 115,
CanVote: false,
CanTravel: true,
Score: 234.009805,
Income:  150000.00,
Assets: 3673456.18
}";

            void body()
            {
                var got = JsonReader.ToDoc <TypicalPerson>(json);

                // got.See();
                Aver.IsNotNull(got);
            }

            var time = Timeter.StartNew();

            if (par)
            {
                Parallel.For(0, cnt, i => body());
            }
            else
            {
                for (var i = 0; i < cnt; i++)
                {
                    body();
                }
            }

            time.Stop();

            "Did {0:n0} in {1:n1} sec at {2:n0} ops/sec".SeeArgs(cnt, time.ElapsedSec, cnt / time.ElapsedSec);
        }
Exemple #8
0
        public void BenchmarkIntNullable()
        {
            var sut = new Typed();
            var fd  = sut.Schema["Int2"];

            var time = Timeter.StartNew();

            for (var i = 0; i < CNT; i++)
            {
                sut.SetFieldValue(fd, null);
                sut.SetFieldValue(fd, 123);
            }
            time.Stop();
            "Speed: {0:n0} ops/sec".SeeArgs(CNT / time.ElapsedSec);
        }
Exemple #9
0
        public void Test1()
        {
            var time = Timeter.StartNew();

            Aver.IsTrue(time.IsStarted);

            Thread.Sleep(500);

            var ems = time.ElapsedMs;
            var el  = time.Elapsed;

            Aver.IsTrue(ems >= 500 && ems <= 525);

            Aver.IsTrue(el.TotalMilliseconds >= 500 && el.TotalMilliseconds <= 525);

            "Elapsed {0} ms / {1} timespan".SeeArgs(ems, el);
        }
Exemple #10
0
        /// <summary>
        /// Profiles a synchronous call body with DataQueryLatency gauge
        /// </summary>
        protected T Profile <T>(Func <T> body)
        {
            Timeter?sw = null;

            if (Instrumented)
            {
                sw = Timeter.StartNew();
            }

            var result = body.NonNull(nameof(body))();

            if (sw.HasValue)
            {
                var el = sw.Value.ElapsedMs;
                Instrumentation.DataQueryLatency.Emit(Instruments, Store.TargetName, GetType().Name, el);
            }

            return(result);
        }
        protected override void DoFilterWork(WorkContext work, IList <WorkFilter> filters, int thisFilterIndex)
        {
            var bypass = !this.Enabled || !App.Instrumentation.Enabled;

            if (bypass)
            {
                InvokeNextWorker(work, filters, thisFilterIndex);
                return;
            }

            var time = Timeter.StartNew();

            try
            {
                InvokeNextWorker(work, filters, thisFilterIndex);
            }
            finally
            {
                var uri = work.Request.Url.AbsolutePath;
                var ctx = work.Session?.DataContextName;
                Instrumentation.ApiLatency.EmitApiCall(App.Instrumentation, uri, ctx, time.ElapsedMs, EmitApiCallEvent);
            }
        }
Exemple #12
0
        protected override void DoFilterWork(WorkContext work, IList <WorkFilter> filters, int thisFilterIndex)
        {
            var     ie   = App.Instrumentation.Enabled;
            Timeter?time = null;

            if (ie)
            {
                time = Timeter.StartNew();
            }
            try
            {
                InvokeNextWorker(work, filters, thisFilterIndex);
            }
            finally
            {
                if (ie)
                {
                    var uri = work.Request.Url.AbsolutePath;
                    var ctx = work.Session?.DataContextName;
                    Instrumentation.ApiLatency.EmitApiCall(App.Instrumentation, uri, ctx, time.Value.ElapsedMs, EmitApiCallEvent);
                }
            }
        }