예제 #1
0
        private static void Test12()
        {
            for (int i = 0; i < 2; i++)
            {
                _categories.Add("SomeCategory" + i);
            }
            for (int i = 0; i < 2; i++)
            {
                _counterNames.Add("SomeName" + i);
            }
            for (int i = 0; i < 50; i++)
            {
                _sources.Add("Source" + i);
            }

            foreach (var v in Enumerable.Range(1, 5))
            {
                _instances.Add("");
            }
            foreach (var v in Enumerable.Range(1, 100))
            {
                _extDatas.Add("");
            }


            for (int i = 0; i < 2; i++)
            {
                _instances.Add("Instance" + i);
            }
            for (int i = 0; i < 2; i++)
            {
                _extDatas.Add("ExtData" + i);
            }
            //DataLayerEx.Database.InitConnection("localhost",null,"test2");
            aggregator = new AggregationEx.Aggregator("CounterCategory",
                                                      "CounterName",
                                                      new List <string>()
            {
                "Count", "Avg", "Max", "Min", "Sum", "Percentile"
            },
                                                      new Dictionary <string, string>
                                                          ()
            {
                {
                    "Percentile",
                    "20|50|90|99"
                }
            },
                                                      avalue =>
            {
                //Console.WriteLine(
                //    avalue.ToString());
                //resultlog.Add(
                //    avalue.ToString());
                DataLayerEx.Database.Instance.Save(avalue);
            });

            int threadsCount = 1;// Environment.ProcessorCount + 2;

            List <Thread> threads  = new List <Thread>(threadsCount);
            Thread        flushlog = new Thread(FlushLog);

            flushlog.Start();

            for (int j = 0; j < threadsCount; j++)
            {
                Thread th = new Thread(DoWork);
                th.Priority = ThreadPriority.Lowest;
                threads.Add(th);
                th.Start();
            }
            foreach (var thread in threads)
            {
                thread.Join();
            }


            File.WriteAllLines("log", log.ToList());
            File.WriteAllLines("resultLog", resultlog.ToList());
        }
예제 #2
0
        private static void Test12()
        {
            for (int i = 0; i < 2; i++)
            {
                _categories.Add("SomeCategory"+i);
            }
            for (int i = 0; i < 2; i++)
            {
                _counterNames.Add("SomeName" + i);
            }
            for (int i = 0; i < 50; i++)
            {
                _sources.Add("Source" + i);
            }
            
            foreach (var v in Enumerable.Range(1, 5))
                _instances.Add("");
            foreach (var v in Enumerable.Range(1, 100))
                _extDatas.Add("");
            
            
            for (int i = 0; i < 2; i++)
            {
                _instances.Add("Instance" + i);
            }
            for (int i = 0; i < 2; i++)
            {
                _extDatas.Add("ExtData" + i);
            }
            //DataLayerEx.Database.InitConnection("localhost",null,"test2");
            aggregator  = new AggregationEx.Aggregator("CounterCategory",
                                                                                          "CounterName",
                                                                                          new List<string>() { "Count", "Avg", "Max","Min","Sum", "Percentile" },
                                                                                          new Dictionary<string, string>
                                                                                              ()
                                                                                              {
                                                                                                  {
                                                                                                      "Percentile",
                                                                                                      "20|50|90|99"
                                                                                                  }
                                                                                              },
                                                                                          avalue =>
                                                                                              {
                                                                                                  //Console.WriteLine(
                                                                                                  //    avalue.ToString());
                                                                                                  //resultlog.Add(
                                                                                                  //    avalue.ToString());
                                                                                                  DataLayerEx.Database.Instance.Save(avalue);
                                                                                              });

            int threadsCount = 1;// Environment.ProcessorCount + 2;
            
            List<Thread> threads = new List<Thread>(threadsCount);
            Thread flushlog = new Thread(FlushLog);
            flushlog.Start();

            for (int j = 0; j < threadsCount; j++)
            {
                Thread th = new Thread(DoWork);
                th.Priority = ThreadPriority.Lowest;
                threads.Add(th);
                th.Start();    
            }
            foreach (var thread in threads)
            {
                thread.Join();
            }

            
            File.WriteAllLines("log", log.ToList());
            File.WriteAllLines("resultLog",resultlog.ToList());
        }