示例#1
0
        public RouteValueDictionary GetRouteValues(string memberName)
        {
            var prefix = String.IsNullOrWhiteSpace(memberName)
                ? null
                : memberName + '.';
            var result = new RouteValueDictionary();

            if (Source != null)
            {
                foreach (var item in Source.GetRouteValues(nameof(Source)))
                {
                    result.Add(prefix + item.Key, item.Value);
                }
            }
            if (MinLevel != null && MinLevel.Value != DefaultMinLevel)
            {
                foreach (var item in MinLevel.GetRouteValues(nameof(MinLevel)))
                {
                    result.Add(prefix + item.Key, item.Value);
                }
            }
            if (!String.IsNullOrWhiteSpace(Logger))
            {
                result.Add(prefix + nameof(Logger), Logger);
            }
            if (!String.IsNullOrWhiteSpace(Thread))
            {
                result.Add(prefix + nameof(Thread), Thread);
            }
            if (MinTime > DefaultMinTime)
            {
                result.Add(prefix + nameof(MinTime), MinTime.ToString(DateFormat));
            }
            if (MaxTime < DefaultMaxTime)
            {
                result.Add(prefix + nameof(MaxTime), MaxTime.ToString(DateFormat));
            }
            if (!String.IsNullOrWhiteSpace(Message))
            {
                result.Add(prefix + nameof(Message), Message);
            }
            if (!String.IsNullOrWhiteSpace(Throwable))
            {
                result.Add(prefix + nameof(Throwable), Throwable);
            }
            if (Quantity != null && Quantity.Value != DefaultQuantity)
            {
                foreach (var item in Quantity.GetRouteValues(nameof(Quantity)))
                {
                    result.Add(prefix + item.Key, item.Value);
                }
            }
            if (Offset > DefaultOffset)
            {
                result.Add(prefix + nameof(Offset), Offset);
            }

            return(result);
        }
示例#2
0
 public void PrintStatistic()
 {
     Console.WriteLine("Benchmark name: " + Name);
     Console.WriteLine("Iterations: " + Iterations);
     Console.WriteLine("Avg time per iteration: " + AvgTime.ToString("0.000") + " ms");
     Console.WriteLine("Min time per iteration: " + MinTime.ToString("0.000") + " ms");
     Console.WriteLine("Max time per iteration: " + MaxTime.ToString("0.000") + " ms");
 }
示例#3
0
        public override string ToString()
        {
            string baseString = WaitTime.ToString(CultureInfo.InvariantCulture) + ", " +
                                SpawnInterval.ToString(CultureInfo.InvariantCulture) + ", " +
                                MaxTime.ToString(CultureInfo.InvariantCulture) + ", " + MaxSpawnItems + ", " +
                                SpawnTypeList.ToText();

            return(string.IsNullOrEmpty(ShortName) ? baseString : ShortName + " " + baseString);
        }
示例#4
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = TestId;
         hashCode = (hashCode * 397) ^ (Title != null ? Title.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ MaxTime.GetHashCode();
         hashCode = (hashCode * 397) ^ (LevelOfDifficulty != null ? LevelOfDifficulty.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (RelevanceStatus != null ? RelevanceStatus.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ RelevanceDate.GetHashCode();
         return(hashCode);
     }
 }
示例#5
0
        /// <inheritdoc />
        public override int GetHashCode()
        {
            unchecked
            {
                int hashCode = ChatId != null?ChatId.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ LastMessageNumber.GetHashCode();
                hashCode = (hashCode * 397) ^ Last.GetHashCode();
                hashCode = (hashCode * 397) ^ Limit.GetHashCode();
                hashCode = (hashCode * 397) ^ MinTime.GetHashCode();
                hashCode = (hashCode * 397) ^ MaxTime.GetHashCode();
                return(hashCode);
            }
        }
示例#6
0
 public Dictionary <string, object> ToDictionary()
 {
     return(_lock.Read(() =>
     {
         return new Dictionary <string, object>
         {
             { "hits", HitCount },
             { "total", TotalExecutionTime.ToString("N") },
             { "average", Average.ToString("N") },
             { "exceptions", ExceptionPercentage.ToString("N") },
             { "min", MinTime.ToString("N") },
             { "max", MaxTime.ToString("N") }
         };
     }));
 }
示例#7
0
 public string[] ToStringArray(int digits)
 {
     return(new[]
     {
         AssemblyName,
         MethodName,
         AvgTime.ToString($"F{digits}", CultureInfo.InvariantCulture) /*.Replace(".", ",")*/, //slk . ; in csv , !
         TicksNum.ToString(),
         MinTime.ToString($"F{digits}", CultureInfo.InvariantCulture) /*.Replace(".", ",")*/, //slk . ; in csv , !
         MaxTime.ToString($"F{digits}", CultureInfo.InvariantCulture) /*.Replace(".", ",")*/, //slk . ; in csv , !
         TimeSpent.ToString(),
         AvgKB.ToString(),
         AllocKB.ToString(),
         PatchOwners
     });
 }
示例#8
0
        public static void Write(TextWriter writer)
        {
            TotalTime = TotalTimes.Sum();

            var elapsed = DateTime.UtcNow - Start;
            var avg     = TotalTime / TotalCount;

            Array.Sort(QuantileSample);

            writer.WriteLine("Requests/sec:    {0}", (TotalCount / (elapsed.TotalSeconds + 0.000001)).ToStdString());
            writer.WriteLine("Min time:        {0} ms", MinTime.TicksToMs());
            writer.WriteLine("Max time:        {0} ms", MaxTime.TicksToMs());
            writer.WriteLine("Avg time:        {0} ms", avg.TicksToMs());
            writer.WriteLine("Median time:     {0} ms", QuantileSample[QuantileSample.Length >> 1].TicksToMs());
            writer.WriteLine("Std deviation:   {0}", Math.Sqrt((double)QuantileSample.Sum(time => (time - avg) * (time - avg)) / (QuantileSample.Length - 1)).TicksToMs().ToStdString(suffix: "ms"));
            writer.WriteLine();
            writer.WriteLine("Time taken:      {0}", elapsed.TotalSeconds.ToStdString(suffix: "sec"));
            writer.WriteLine("Data received:   {0}", TotalBytes.ToSmartString(suffix: "B"));
            writer.WriteLine("Transfer rate:   {0}", (TotalBytes / (elapsed.TotalSeconds + 0.000001)).ToSmartString(suffix: "B/sec"));
            writer.WriteLine();

            writer.WriteLine("=== http status codes ===");
            HttpCodes.OrderBy(pair => pair.Key).ForEach(pair => writer.WriteLine("{0,10}\t{1,-10}\t{2}", pair.Value, pair.Key == 0 ? "Unknown error" : ((int)pair.Key).ToString(), ((double)pair.Value / TotalCount).ToPercentString()));
            writer.WriteLine();

            writer.WriteLine("=== quantiles ===");
            for (int i = 0; i < Quantiles.Length; i++)
            {
                var quantile = Quantiles[i];
                writer.WriteLine("{0,10}\t{1} ms", quantile.ToPercentString(), QuantileSample[Math.Max(1, quantile * QuantileSample.Length / 100) - 1].TicksToMs());
            }
            writer.WriteLine();

            long sum = 0;

            writer.WriteLine("=== times ===");
            for (int i = 0; i < Marks.Length; i++)
            {
                sum += TotalCounts[i];
                writer.WriteLine("{0,10}\t{1,-10}\t{2}", TotalCounts[i], $"<{(Marks[i] == long.MaxValue ? "inf" : Marks[i].TicksToMs().ToString())} ms", ((double)sum / TotalCount).ToPercentString());
            }
            writer.WriteLine("----------");
            writer.WriteLine("{0,10}\t{1,-10}\t{2}", TotalCount, $"<{MaxTime.TicksToMs()} ms", 1.0.ToPercentString());
        }
        private void GetRangeBtn_Click(object sender, EventArgs e)
        {
            unsafe
            {
                UInt16 LastErrCode;

                UInt32 MaxTime; UInt32 *pMaxTime = &MaxTime;
                UInt32 MinTime; UInt32 *pMinTime = &MinTime;

                LastErrCode = Watch_Dog_API.WD_GetRange(pMinTime, pMaxTime);
                if (LastErrCode != IMC_ERR_NO_ERROR)
                {
                    MessageBox.Show("Fails to get Watch Dog timer ragne");
                    return;
                }

                TimeMinTxt.Text = MinTime.ToString();
                TimeMaxTxt.Text = MaxTime.ToString();
            }
        }
示例#10
0
        public ReturnCode ParseFile(string fileName)
        {
            // Try reading the file into lines
            string[] lines;
            try
            {
                lines = IOUtility.PermissiveReadAllLines(fileName);
            }
            catch (Exception ex)
            {
                return(ReturnCode.COULD_NOT_OPEN_FILE);
            }
            if (lines.Length < 2)
            {
                return(ReturnCode.CORRUPTED_FILE);
            }

            // Read the first line
            string[] tokens;
            tokens = lines[0].Split(',');
            if (tokens[0].ToLower() != "event list")
            {
                return(ReturnCode.CORRUPTED_FILE);
            }
            if (tokens[1].ToLower() != "version")
            {
                return(ReturnCode.CORRUPTED_FILE);
            }
            int version;

            if (!int.TryParse(tokens[2], out version))
            {
                return(ReturnCode.CORRUPTED_FILE);
            }
            Version = version;

            // Read the column headers
            int eventStartCol = 0;
            int eventEndCol   = 1;
            int durationCol   = 2;
            int maxValCol     = 3;
            int maxTimeCol    = 4;
            int commentsCol   = 5;
            int nColumns      = 5;

            tokens = lines[1].Split(',');
            for (int col = 0; col < tokens.Length; col++)
            {
                switch (tokens[col].ToLower())
                {
                case "event start":
                    eventStartCol = col;
                    if (col > nColumns)
                    {
                        nColumns = col;
                    }
                    break;

                case "event end":
                    eventEndCol = col;
                    if (col > nColumns)
                    {
                        nColumns = col;
                    }
                    break;

                case "duration":
                    durationCol = col;
                    if (col > nColumns)
                    {
                        nColumns = col;
                    }
                    break;

                case "max value":
                    maxValCol = col;
                    if (col > nColumns)
                    {
                        nColumns = col;
                    }
                    break;

                case "max time":
                    maxTimeCol = col;
                    if (col > nColumns)
                    {
                        nColumns = col;
                    }
                    break;

                case "comments":
                    commentsCol = col;
                    if (col > nColumns)
                    {
                        nColumns = col;
                    }
                    break;
                }
            }
            nColumns++;

            // Read event content
            DateTime start;
            DateTime end;

            for (int l = 2; l < lines.Length; ++l)
            {
                tokens = lines[l].Split(',');
                if (tokens.Length < nColumns)
                {
                    return(ReturnCode.CORRUPTED_FILE);
                }
                start = DateTime.Parse(tokens[eventStartCol]);
                end   = DateTime.Parse(tokens[eventEndCol]);
                StartTime.Add(start);
                EndTime.Add(end);
                MaxValue.Add(double.Parse(tokens[maxValCol]));
                MaxTime.Add(DateTime.Parse(tokens[maxTimeCol]));
                Comments.Add(tokens[commentsCol]);
            }

            return(ReturnCode.SUCCESS);
        }
示例#11
0
        public void SaveToXml(string path = "")
        {
            string xmlInput = "<configuration> \n <parallel> serial </parallel>";

            xmlInput += AddNewPropertyValue("linearInput", LinearInput);
            xmlInput += AddNewPropertyValue("license", License);
            xmlInput += AddNewPropertyValue("entropyDir", InputEntropyDir);
            xmlInput += AddNewPropertyValue("objDir", InputObjDir);

            //population sizing
            xmlInput += AddNewPropertyValue("debug_mode", Debug);
            xmlInput += AddNewPropertyValue("use_hboa", Hboa);
            xmlInput += AddNewPropertyValue("initial_popsize", InitPop.ToString());
            xmlInput += AddNewPropertyValue("min_popsize", MinPop.ToString());
            xmlInput += AddNewPropertyValue("max_popsize", MaxPop.ToString());
            xmlInput += AddNewPropertyValue("popsize_scheme", PopScheme);
            xmlInput += AddNewPropertyValue("pop_scaling_factor", PopFactor.ToString());
            xmlInput += AddNewPropertyValue("max_gens", MaxGens.ToString());

            //Design Objectives
            xmlInput += AddNewPropertyValue("test_problem", TestProblem);
            xmlInput += AddNewPropertyValue("nobj", NObj.ToString());

            for (int i = 1; i <= NObj; i++)
            {
                xmlInput += AddNewPropertyValue("obj_tag" + i, ObjTags[i - 1].ToString());
                xmlInput += AddNewPropertyValue("obj_val" + i, ObjVal[i - 1].ToString());
                xmlInput += AddNewPropertyValue("obj_eps" + i, ObjEps[i - 1].ToString());
            }

            xmlInput += AddNewPropertyValue("num_additional_objectives", NAObj.ToString());

            for (int i = 1; i <= NAObj; i++)
            {
                xmlInput += AddNewPropertyValue("aobj1_" + i, AObj1[i - 1].ToString());
                xmlInput += AddNewPropertyValue("aobj" + i + "_2", AObj2[i - 1].ToString());
            }

            xmlInput += AddNewPropertyValue("ncons", NConst.ToString());

            for (int i = 1; i <= NConst; i++)
            {
                xmlInput += AddNewPropertyValue("con_num" + i, ConNum[i - 1].ToString());
                xmlInput += AddNewPropertyValue("con_tot" + i, ConTot[i - 1].ToString());
                xmlInput += AddNewPropertyValue("con_ind" + i, ConInd[i - 1].ToString());
            }

            //Real Decision Variables

            xmlInput += AddNewPropertyValue("nreal", NReal.ToString());
            xmlInput += AddNewPropertyValue("real_pseudo_binary", PseudoBinary);
            xmlInput += AddNewPropertyValue("real_limits", RealLimits);

            if (RealTag != null)
            {
                for (int i = 1; i <= RealTag.Count(); i++)
                {
                    xmlInput += AddNewPropertyValue("real_tag" + i, RealTag[i - 1].ToString());
                    xmlInput += AddNewPropertyValue("real_min" + i, RealMin[i - 1].ToString());
                    xmlInput += AddNewPropertyValue("real_max" + i, RealMax[i - 1].ToString());
                }
            }

            xmlInput += AddNewPropertyValue("real_cross_prob", RealCrossProb.ToString());
            xmlInput += AddNewPropertyValue("real_mut_prob", RealMutProb.ToString());
            xmlInput += AddNewPropertyValue("dist_index_sbx", DistIndexSBX.ToString());
            xmlInput += AddNewPropertyValue("dist_index_poly", DistIndexPoly.ToString());

            //Binary Decision Variables

            xmlInput += AddNewPropertyValue("nbin", NBin.ToString());
            xmlInput += AddNewPropertyValue("bin_limits", BinLimits == true ? " same " : " different ");

            for (int i = 1; i <= NBin; i++)
            {
                xmlInput += AddNewPropertyValue("bin_tag" + i, BinTag[i - 1].ToString());
                xmlInput += AddNewPropertyValue("bin_bit" + i, BinBit[i - 1].ToString());
                xmlInput += AddNewPropertyValue("bin_min" + i, RealMin[i - 1].ToString());
                xmlInput += AddNewPropertyValue("bin_max" + i, RealMax[i - 1].ToString());
            }

            xmlInput += AddNewPropertyValue("bin_cross_prob", BinCrossProb.ToString());
            xmlInput += AddNewPropertyValue("bin_cross_type", BinCrossType);
            xmlInput += AddNewPropertyValue("bin_mut_prob", BinMutProb.ToString());
            xmlInput += AddNewPropertyValue("bin_mut_type", BinMutType);

            //Soft Termination Criteria

            xmlInput += AddNewPropertyValue("inter_run", InterRun);
            xmlInput += AddNewPropertyValue("inter_delta", InterDelta.ToString());
            xmlInput += AddNewPropertyValue("intra_run", IntraRun);
            xmlInput += AddNewPropertyValue("inter_delta", IntraDelta.ToString());

            //Hard Termination Criteria

            xmlInput += AddNewPropertyValue("max_nfe", MaxNfe.ToString());
            xmlInput += AddNewPropertyValue("max_time", MaxTime.ToString());
            xmlInput += AddNewPropertyValue("max_eperf", MaxEperf.ToString());

            //Performance Metrics

            xmlInput += AddNewPropertyValue("conv", Conv);
            xmlInput += AddNewPropertyValue("div", Div);
            xmlInput += AddNewPropertyValue("eperf", Eperf);
            xmlInput += AddNewPropertyValue("edom_eperf", EdomEperf);

            if (DivGrid != null)
            {
                for (int i = 1; i <= DivGrid.Count; i++)
                {
                    xmlInput += AddNewPropertyValue("div_grid" + i, DivGrid[i - 1].ToString());
                }
            }

            if (EperfEps != null)
            {
                for (int i = 1; i <= EperfEps.Count; i++)
                {
                    xmlInput += AddNewPropertyValue("eperf_eps" + i, EperfEps[i - 1].ToString());
                }
            }

            xmlInput += AddNewPropertyValue("eind", Eind);
            xmlInput += AddNewPropertyValue("eind_error", EindError.ToString());
            xmlInput += AddNewPropertyValue("metric_ref", MetricRef);

            //Local File Output

            xmlInput += AddNewPropertyValue("out_dir", OutDir);
            xmlInput += AddNewPropertyValue("out_headers", OutHeaders);
            xmlInput += AddNewPropertyValue("out_all", OutAll ? OutInterval.ToString() : "0");
            xmlInput += AddNewPropertyValue("out_nondom", Nondom ? NondomInterval.ToString() : "0");
            xmlInput += AddNewPropertyValue("out_all_final", AllFinal ? "on" : "off");
            xmlInput += AddNewPropertyValue("out_nondom_final", NondomFinal ? "on" : "off");
            xmlInput += AddNewPropertyValue("out_stats", StatsInterval.ToString());
            xmlInput += AddNewPropertyValue("out_rs", RsStats ? "on" : "off");
            xmlInput += AddNewPropertyValue("out_timer", TimerInterval.ToString());
            xmlInput += AddNewPropertyValue("out_vtk", VtkInterval.ToString());
            xmlInput += AddNewPropertyValue("out_vtk_sflag", SmallFlag);


            //DEMO Parameters

            xmlInput += AddNewPropertyValue("ndata", NData.ToString());



            //End Tag
            xmlInput += "\n </configuration>";

            var doc = XDocument.Parse(xmlInput);

            xmlDoc = doc;

            if (path == string.Empty)
            {
                doc.Save(path + "configuration.xml");
            }
            else
            {
                doc.Save(path);
            }
        }
 public static string MaxTimeString()
 {
     return(MaxTime.ToString("n6") + "ms");
 }
示例#13
0
 public string ToCsvRow(int digits)
 {
     return($"{AssemblyName};{MethodName};{AvgTime.ToString($"F{digits}", CultureInfo.InvariantCulture).Replace(".", ",")};{TicksNum};{MinTime.ToString($"F{digits}", CultureInfo.InvariantCulture).Replace(".", ",")};{MaxTime.ToString($"F{digits}", CultureInfo.InvariantCulture).Replace(".", ",")};{TimeSpent};{AvgKB};{AllocKB};{PatchOwners}");
 }