Exemplo n.º 1
0
        public void TestJetThreadstatsAddition()
        {
            var t1 = new JET_THREADSTATS
            {
                cPageReferenced = 1,
                cPageRead = 2,
                cPagePreread = 3,
                cPageDirtied = 4,
                cPageRedirtied = 5,
                cLogRecord = 6,
                cbLogRecord = 7,
            };
            var t2 = new JET_THREADSTATS
            {
                cPageReferenced = 8,
                cPageRead = 9,
                cPagePreread = 10,
                cPageDirtied = 11,
                cPageRedirtied = 12,
                cLogRecord = 13,
                cbLogRecord = 14,
            };

            JET_THREADSTATS sum = t1 + t2;
            Assert.AreEqual(9, sum.cPageReferenced);
            Assert.AreEqual(11, sum.cPageRead);
            Assert.AreEqual(13, sum.cPagePreread);
            Assert.AreEqual(15, sum.cPageDirtied);
            Assert.AreEqual(17, sum.cPageRedirtied);
            Assert.AreEqual(19, sum.cLogRecord);
            Assert.AreEqual(21, sum.cbLogRecord);

            Assert.AreEqual(sum, JET_THREADSTATS.Add(t1, t2));
        }
Exemplo n.º 2
0
 /// <summary>
 /// Stops time interval measurement and resets the thread statistics.
 /// </summary>
 public void Reset()
 {
     this.stopwatch = null;
     this.ThreadStats = new JET_THREADSTATS();
     this.Elapsed = TimeSpan.Zero;
     this.IsRunning = false;
 }
Exemplo n.º 3
0
 public void Setup()
 {
     this.native = new NATIVE_THREADSTATS
     {
         cPageReferenced = 1,
         cPageRead = 2,
         cPagePreread = 3,
         cPageDirtied = 4,
         cPageRedirtied = 5,
         cLogRecord = 6,
         cbLogRecord = 7,
     };
     this.managed = new JET_THREADSTATS();
     this.managed.SetFromNativeThreadstats(this.native);
 }
Exemplo n.º 4
0
 public static unsafe extern int JetGetThreadStats(JET_THREADSTATS* pvResult, uint cbMax);
Exemplo n.º 5
0
        public void TestJetThreadstatsSubtraction()
        {
            var t1 = new JET_THREADSTATS
            {
                cPageReferenced = 20,
                cPageRead = 19,
                cPagePreread = 18,
                cPageDirtied = 17,
                cPageRedirtied = 16,
                cLogRecord = 15,
                cbLogRecord = 14,
            };
            var t2 = new JET_THREADSTATS
            {
                cPageReferenced = 8,
                cPageRead = 9,
                cPagePreread = 10,
                cPageDirtied = 11,
                cPageRedirtied = 12,
                cLogRecord = 13,
                cbLogRecord = 14,
            };

            JET_THREADSTATS difference = t1 - t2;
            Assert.AreEqual(12, difference.cPageReferenced);
            Assert.AreEqual(10, difference.cPageRead);
            Assert.AreEqual(8, difference.cPagePreread);
            Assert.AreEqual(6, difference.cPageDirtied);
            Assert.AreEqual(4, difference.cPageRedirtied);
            Assert.AreEqual(2, difference.cLogRecord);
            Assert.AreEqual(0, difference.cbLogRecord);

            Assert.AreEqual(difference, JET_THREADSTATS.Subtract(t1, t2));
        }
Exemplo n.º 6
0
        public void TestJetThreadstatsToStringPerf()
        {
            var t = new JET_THREADSTATS
            {
                cPageReferenced = 10,
                cPageRead = 5,
                cPagePreread = 4,
                cPageDirtied = 3,
                cPageRedirtied = 2,
                cLogRecord = 1,
                cbLogRecord = 0,
            };

            // Call the method once to make sure it is compiled.
            string ignored = t.ToString();

            const int N = 100000;
            Stopwatch s = Stopwatch.StartNew();
            for (int i = 0; i < N; ++i)
            {
                ignored = t.ToString();
            }

            s.Stop();

            double ms = Math.Max(1, s.ElapsedMilliseconds);
            Console.WriteLine("{0} calls in {1} ({2} ms/call)", N, s.Elapsed, ms / N);
        }
Exemplo n.º 7
0
 public void TestJetThreadstatsToString()
 {
     var t = new JET_THREADSTATS
     {
         cPageReferenced = 10,
         cPageRead = 2,
         cPagePreread = 3,
         cPageDirtied = 4,
         cPageRedirtied = 5,
         cLogRecord = 6,
         cbLogRecord = 7,
     };
     const string Expected = "10 page references, 2 pages read, 3 pages preread, 4 pages dirtied, 5 pages redirtied, 6 log records, 7 bytes logged";
     Assert.AreEqual(Expected, t.ToString());
 }
Exemplo n.º 8
0
 public void TestJetThreadstatsToStringZero()
 {
     var t = new JET_THREADSTATS
     {
         cPageReferenced = 0,
         cPageRead = 0,
         cPagePreread = 0,
         cPageDirtied = 0,
         cPageRedirtied = 0,
         cLogRecord = 0,
         cbLogRecord = 0,
     };
     const string Expected = "0 page references, 0 pages read, 0 pages preread, 0 pages dirtied, 0 pages redirtied, 0 log records, 0 bytes logged";
     Assert.AreEqual(Expected, t.ToString());
 }
Exemplo n.º 9
0
 public void TestJetThreadstatsToStringSingular()
 {
     var t = new JET_THREADSTATS
     {
         cPageReferenced = 1,
         cPageRead = 1,
         cPagePreread = 1,
         cPageDirtied = 1,
         cPageRedirtied = 1,
         cLogRecord = 1,
         cbLogRecord = 1,
     };
     const string Expected = "1 page reference, 1 page read, 1 page preread, 1 page dirtied, 1 page redirtied, 1 log record, 1 byte logged";
     Assert.AreEqual(Expected, t.ToString());
 }
Exemplo n.º 10
0
 /// <summary>
 /// Stops measuring ESENT work.
 /// </summary>
 public void Stop()
 {
     if (this.IsRunning)
     {
         this.IsRunning = false;
         this.stopwatch.Stop();
         this.Elapsed = this.stopwatch.Elapsed;
         if (EsentVersion.SupportsVistaFeatures)
         {
             JET_THREADSTATS statsAtEnd;
             VistaApi.JetGetThreadStats(out statsAtEnd);
             this.ThreadStats = statsAtEnd - this.statsAtStart;
         }
     }
 }