public PerformanceMeasurements(string version, string description, PerformanceMeasurementConfigurationParameters parameters)
        {
            ValidateArguments(version, description);

            FrameworkVersion     = version;
            FrameworkDescription = description;

            SimulationDuration = parameters.SimulationDuration;
            FrameCount         = parameters.LogCount;
            HistogramBins      = parameters.HistogramBins;

            RealizationTimes = new DynamicHistogram(HistogramBins);
            SolverSteps      = new DynamicHistogram[FrameCount];
            StepTicks        = new DynamicHistogram[FrameCount];
            ReactionFirings  = new DynamicHistogram[FrameCount];

            for (int iFrame = 0; iFrame < FrameCount; iFrame++)
            {
                SolverSteps[iFrame]     = new DynamicHistogram(HistogramBins);
                StepTicks[iFrame]       = new DynamicHistogram(HistogramBins);
                ReactionFirings[iFrame] = new DynamicHistogram(HistogramBins);
            }

            MeasurementTimeTicks = 0;
            _stopwatch           = new Stopwatch();
        }
        public void DynamicHistogramBinCountCtor()
        {
            const int binCount  = 8;
            var       histogram = new DynamicHistogram(binCount);

            Assert.AreEqual(0, histogram.SampleCount);
            Assert.AreEqual(binCount, histogram.BinCount);
        }
        public void DynamicHistogramVectorCtor()
        {
            const int binCount  = 8;
            var       bins      = new long[binCount];
            var       histogram = new DynamicHistogram(bins);

            Assert.AreEqual(0, histogram.SampleCount);
            Assert.AreEqual(binCount, histogram.BinCount);

            histogram.AddSample(1968);
            histogram.AddSample(2012);
            CollectionAssert.AreEqual(bins, histogram);
        }
Beispiel #4
0
        private static void SerializeHistogramToStream(DynamicHistogram histogram, TextWriter textWriter)
        {
            textWriter.Write("{0},", histogram.LowerBound);
            textWriter.Write("{0},", histogram.Width);
            textWriter.Write("{0},", histogram.BinCount);

            textWriter.Write(histogram[0]);
            for (int i = 1; i < histogram.BinCount; i++)
            {
                textWriter.Write(",{0}", histogram[i]);
            }
            textWriter.WriteLine();
        }
        public void DynamicHistogramAddSample()
        {
            const int binCount  = 8;
            var       histogram = new DynamicHistogram(binCount);

            const long lowSample = 1968;

            histogram.AddSample(lowSample);
            const long highSample = 2012;

            histogram.AddSample(highSample);
            // Histogram lower bound is closed, therefore less OR equal
            Assert.LessOrEqual(histogram.LowerBound, lowSample);
            // Histogram upper bound is open, therefore strictly greater
            Assert.Greater(histogram.UpperBound, highSample);

            Assert.AreEqual(2, histogram.SampleCount);
            Assert.AreEqual(histogram.LowerBound + histogram.Width * histogram.BinCount, histogram.UpperBound);
        }
Beispiel #6
0
        TRealVar TOZ; //Время обработки заявки в системе

        #endregion Fields

        #region Constructors

        public VU(VS parent, string name)
            : base(parent, name)
        {
            ParentVS = parent;
            UVD = new UstroystvoVvoda(this, "УВД" + "(" + name + ")");
            UR = new UstroystvoRabota(this, "УОД" + "(" + name + ")");
            UV = new UstroystvoVyvoda(this, "УВР" + "(" + name + ")");

            this.AddModelObject(UVD);
            this.AddModelObject(UR);
            this.AddModelObject(UV);

            #region  Инициализация переменных объектов модели
            KVZ = InitModelObject<TIntVar>();
            KOZ = InitModelObject<TIntVar>();
            TOZ = InitModelObject<TRealVar>();
            KPZ = new int[3];

            Gener_Vhod = InitModelObject<ExpStream>();
            Gener_RazmerVvod = InitModelObject<UniformStream>();
            Gener_RazmerVyvoda = InitModelObject<NormalStream>();
            //  Gener_RazmerRabota = InitModelObject<ExpStream>();
            #endregion

            #region Инициализация сборщиков статистики
            Variance_TOZ = InitModelObject<Variance<Double>>();   //создаем сборщик
            Variance_TOZ.ConnectOnSet(TOZ);              //подключаем сборщик к переменной

            Min_TOZ = InitModelObject<Min<double>>();   //создаем сборщик
            Min_TOZ.ConnectOnSet(TOZ);                  //подключаем сборщик к переменной

            Max_TOZ = InitModelObject<Max<double>>();   //создаем сборщик
            Max_TOZ.ConnectOnSet(TOZ);              //подключаем сборщик к переменной

            His_TOZ = InitModelObject<DynamicHistogram>();
            His_TOZ.ConnectOnSet(TOZ);
            #endregion
        }
 public void DynamicHistogramCtorNullVector()
 {
     #pragma warning disable 168 // unused local variable
     var unused = new DynamicHistogram(null);
     #pragma warning restore 168
 }
 public void DynamicHistogramCtorBadBinCount()
 {
     #pragma warning disable 168 // unused local variable
     var unused = new DynamicHistogram(-5);
     #pragma warning restore 168
 }
Beispiel #9
0
        Variance<Double> Variance_TOZ; //МО и дисперсия

        #endregion Fields

        #region Constructors

        public VS(Model parent, string name)
            : base(parent, name)
        {
            #region  Инициализация переменных объектов модели
            KVZ = InitModelObject<TIntVar>();
            KOZ = InitModelObject<TIntVar>();
            TOZ = InitModelObject<TRealVar>();

            UZEL = new VU[3];
            UZEL[0] = new VU(this, "ВУ1");
            UZEL[1] = new VU(this, "ВУ2");
            UZEL[2] = new VU(this, "ВУ3");

            this.AddModelObject(UZEL[0]);
            this.AddModelObject(UZEL[1]);
            this.AddModelObject(UZEL[2]);

            KANAL = new KPD[3];
            KANAL[0] = new KPD(this, "КПД(1,2)");
            KANAL[1] = new KPD(this, "КПД(1,3)");
            KANAL[2] = new KPD(this, "КПД(2,3)");

            this.AddModelObject(KANAL[0]);
            this.AddModelObject(KANAL[1]);
            this.AddModelObject(KANAL[2]);

            KANAL[0].VU_1 = UZEL[0];
            KANAL[0].VU_2 = UZEL[1];
            KANAL[1].VU_1 = UZEL[0];
            KANAL[1].VU_2 = UZEL[2];
            KANAL[2].VU_1 = UZEL[1];
            KANAL[2].VU_2 = UZEL[2];
            #endregion

            #region Инициализация сборщиков статистики

            Variance_TOZ = InitModelObject<Variance<Double>>();   //создаем сборщик
            Variance_TOZ.ConnectOnSet(TOZ);              //подключаем сборщик к переменной

            Min_TOZ = InitModelObject<Min<double>>();   //создаем сборщик
            Min_TOZ.ConnectOnSet(TOZ);                  //подключаем сборщик к переменной

            Max_TOZ = InitModelObject<Max<double>>();   //создаем сборщик
            Max_TOZ.ConnectOnSet(TOZ);              //подключаем сборщик к переменной

            His_TOZ = InitModelObject<DynamicHistogram>();
            His_TOZ.ConnectOnSet(TOZ);

            //--------------------------------------------------
            allValuesTest = InitModelObject<AllValues<int>>("Сборщик полной статистики");
            dhTest = InitModelObject<DynamicHistogram>("Динамическая гистограмма");
            testAV = InitModelObject<TIntVar>("Тестовая переменная 1");
            testDH = InitModelObject<TRealVar>("Тестовая переменная 2");
            testAV.AddCollectors_OnSet(allValuesTest);
            testDH.AddCollectors_OnSet(dhTest);
            //--------------------------------------------------
            #endregion

            /*Tracer.AddAutoTabModel(this);
            UZEL.ToList().ForEach(u => Tracer.AddAutoTabModel(u));
            KANAL.ToList().ForEach(k => Tracer.AddAutoTabModel(k));*/
        }