コード例 #1
0
        public void RefreshBuildLog()
        {
            // I don't know why, but LogStats.Clear throws thread exception even though EnableCollectionSynchronization is used.
            // Reproduce: Remove Dispatcher.Invoke, and run CodeBox three times in a row (without closing LogWindow).
            // TODO: This is a quick dirty fix. Apply better patch later.
            Application.Current?.Dispatcher.Invoke(() =>
            {
                LogStats.Clear();
                VariableLogs.Clear();

                // Populate SelectBuildEntries
                LogModel.BuildInfo[] buildEntries = LogDb.Table <LogModel.BuildInfo>()
                                                    .OrderByDescending(x => x.StartTime)
                                                    .ToArray();
                BuildEntries = new ObservableCollection <LogModel.BuildInfo>(buildEntries);
            });

            SelectedBuildIndex = 0;
            // Print summary
            SelectedScriptIndex = 0;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: CharlesTaylor95/WarStats
        private static void _standardLogDataSampling(int trials)
        {
            int n = trials;
            Stopwatch sw = new Stopwatch();

            //Data collection time:
            sw.Start();
            var list = new int[n];
            for (int i = 0; i < n; i++)
            {
                list[i] = new Game().Rounds;
            }
            sw.Stop();
            long avgTime = sw.ElapsedMilliseconds / n;
            //

            LogStats stats = new LogStats(list);

            Console.WriteLine(stats);
            Console.ReadKey();
        }
コード例 #3
0
        public void TestLoggingSystemStats()
        {
            testName = "TestLoggingSystemStats";
            SetUpTest(true);
            string logDir = "./";

            Directory.CreateDirectory(testHome + "/" + logDir);

            DatabaseEnvironmentConfig cfg =
                new DatabaseEnvironmentConfig();

            cfg.Create                   = true;
            cfg.UseTxns                  = true;
            cfg.AutoCommit               = true;
            cfg.UseLocking               = true;
            cfg.UseMPool                 = true;
            cfg.UseLogging               = true;
            cfg.MPoolSystemCfg           = new MPoolConfig();
            cfg.MPoolSystemCfg.CacheSize = new CacheInfo(0, 1048576, 1);

            cfg.LogSystemCfg                = new LogConfig();
            cfg.LogSystemCfg.AutoRemove     = false;
            cfg.LogSystemCfg.BufferSize     = 10240;
            cfg.LogSystemCfg.Dir            = logDir;
            cfg.LogSystemCfg.FileMode       = 755;
            cfg.LogSystemCfg.ForceSync      = true;
            cfg.LogSystemCfg.InMemory       = false;
            cfg.LogSystemCfg.LogBlobContent = false;
            cfg.LogSystemCfg.MaxFileSize    = 1048576;
            cfg.LogSystemCfg.NoBuffer       = false;
            cfg.LogSystemCfg.RegionSize     = 204800;
            cfg.LogSystemCfg.ZeroOnCreate   = true;

            DatabaseEnvironment env = DatabaseEnvironment.Open(testHome, cfg);

            LogStats stats = env.LoggingSystemStats();

            env.PrintLoggingSystemStats();
            Assert.AreEqual(10240, stats.BufferSize);
            Assert.AreEqual(1, stats.CurrentFile);
            Assert.AreNotEqual(0, stats.CurrentOffset);
            Assert.AreEqual(0, stats.FileId);
            Assert.AreEqual(1048576, stats.FileSize);
            Assert.AreEqual(0, stats.InitFileId);
            Assert.AreNotEqual(0, stats.MagicNumber);
            Assert.AreEqual(0, stats.MaxFileId);
            Assert.AreNotEqual(0, stats.PermissionsMode);
            Assert.AreEqual(1, stats.Records);
            Assert.AreNotEqual(0, stats.RegionLockNoWait);
            Assert.LessOrEqual(204800, stats.RegionSize);
            Assert.AreNotEqual(0, stats.Version);

            Transaction         openTxn  = env.BeginTransaction();
            BTreeDatabaseConfig dbConfig = new BTreeDatabaseConfig();

            dbConfig.Creation = CreatePolicy.IF_NEEDED;
            dbConfig.Env      = env;
            BTreeDatabase db = BTreeDatabase.Open(testName + ".db", dbConfig, openTxn);

            openTxn.Commit();

            Transaction writeTxn = env.BeginTransaction();

            byte[] byteArr = new byte[1024];
            for (int i = 0; i < 1000; i++)
            {
                db.Put(new DatabaseEntry(BitConverter.GetBytes(i)),
                       new DatabaseEntry(byteArr), writeTxn);
            }
            writeTxn.Commit();

            stats = env.LoggingSystemStats();
            Assert.AreNotEqual(0, stats.Bytes);
            Assert.AreNotEqual(0, stats.BytesSinceCheckpoint);
            Assert.AreNotEqual(0, stats.DiskFileNumber);
            Assert.AreNotEqual(0, stats.DiskOffset);
            Assert.AreNotEqual(0, stats.MaxCommitsPerFlush);
            Assert.AreNotEqual(0, stats.MBytes);
            Assert.AreNotEqual(0, stats.MBytesSinceCheckpoint);
            Assert.AreNotEqual(0, stats.MinCommitsPerFlush);
            Assert.AreNotEqual(0, stats.OverflowWrites);
            Assert.AreNotEqual(0, stats.Syncs);
            Assert.AreNotEqual(0, stats.Writes);
            Assert.AreEqual(0, stats.Reads);
            Assert.AreEqual(0, stats.RegionLockWait);

            stats = env.LoggingSystemStats(true);
            stats = env.LoggingSystemStats();
            Assert.AreEqual(0, stats.Bytes);
            Assert.AreEqual(0, stats.BytesSinceCheckpoint);
            Assert.AreEqual(0, stats.MaxCommitsPerFlush);
            Assert.AreEqual(0, stats.MBytes);
            Assert.AreEqual(0, stats.MBytesSinceCheckpoint);
            Assert.AreEqual(0, stats.MinCommitsPerFlush);
            Assert.AreEqual(0, stats.OverflowWrites);
            Assert.AreEqual(0, stats.Syncs);
            Assert.AreEqual(0, stats.Writes);
            Assert.AreEqual(0, stats.Reads);

            env.PrintLoggingSystemStats(true, true);

            db.Close();
            env.Close();
        }