示例#1
0
文件: PileForm.cs 项目: ame89/nfx
//    private List<Person> m_Crap = new List<Person>();

        private void btnPersonPut_Click(object sender, EventArgs e)
        {
            lbPerson.Items.Clear();
            var cnt = tbPersonCount.Text.AsInt(10);
            var w   = Stopwatch.StartNew();
            var pv  = tbPersonVariance.Text.AsInt(0);

            for (var i = 0; i < cnt; i++)
            {
                var obj = i % 5 == 0? Person2.MakeFake2() : Person.MakeFake();
//m_Crap.Add( obj );
                if (pv > 0)
                {
                    obj.BinData = new byte[pv];
                }

                var pp = m_Pile.Put(obj);

                if (i < 25)
                {
                    lbPerson.Items.Add(pp);
                }
            }

            var elps = w.ElapsedMilliseconds;

            Text = "Added {0:n0} in {1:n0}ms at {2:n0}/sec".Args(cnt, elps, cnt / (elps / 1000d));
        }
示例#2
0
文件: PileForm.cs 项目: uzbekdev1/nfx
        private void trax()
        {
            __threadCount     = tbTraxThreads.Text.AsInt(1);
            __writesSec       = tbTraxWrites.Text.AsInt(0);
            __delSec          = tbTraxDeletes.Text.AsInt(0);
            __payloadVariance = tbTraxVariance.Text.AsInt(0);
            __payloadType     = rbtPerson.Checked ? ptype.Person : rbtPerson2.Checked ? ptype.Person2 : rbtString.Checked ? ptype.String : ptype.ByteArray;

            var added = 0;

            while (chkTraxer.Checked && m_Traxers.Count < __threadCount)
            {
                var context = new tcontext();
                var thread  = new Thread(
                    (ctx) =>
                {
                    try
                    {
                        var pps = new PilePointer[4000000];
                        for (var i = 0; i < pps.Length; i++)
                        {
                            pps[i] = PilePointer.Invalid;
                        }
                        var ppi = 0;
                        var di  = 0;

                        while (m_Pile.Running && !((tcontext)ctx).STOP)
                        {
                            var tc = __threadCount;
                            if (tc == 0)
                            {
                                return;
                            }

                            var wc = __writesSec / tc;
                            var dc = __delSec / tc;

                            var w = 0;
                            var d = 0;
                            while (w < wc || d < dc)
                            {
                                if (w < wc)
                                {
                                    object payload;

                                    if (__payloadType == ptype.Person)
                                    {
                                        var p = Person.MakeFake();
                                        if (__payloadVariance > 0)
                                        {
                                            p.BinData = new byte[IntMath.ChangeByRndPct(__payloadVariance, -0.25f)];
                                        }
                                        payload = p;
                                    }
                                    else if (__payloadType == ptype.Person2)
                                    {
                                        var p = Person2.MakeFake2();
                                        if (__payloadVariance > 0)
                                        {
                                            p.BinData = new byte[IntMath.ChangeByRndPct(__payloadVariance, -0.25f)];
                                        }
                                        payload = p;
                                    }
                                    else if (__payloadType == ptype.String)
                                    {
                                        payload = new string(' ', __payloadVariance);
                                    }
                                    else
                                    {
                                        payload = new byte[__payloadVariance];
                                    }



                                    var pp   = m_Pile.Put(payload);
                                    pps[ppi] = pp;
                                    ppi++;
                                    if (ppi == pps.Length)
                                    {
                                        ppi = 0;
                                    }
                                    w++;
                                }

                                if (d < dc)
                                {
                                    if (di == pps.Length)
                                    {
                                        di = 0;
                                    }
                                    var pp = pps[di];
                                    if (pp.Address >= 0)
                                    {
                                        m_Pile.Delete(pp);
                                        pps[di] = PilePointer.Invalid;
                                    }
                                    d++;
                                    di++;
                                }
                            }
                        }
                    }
                    catch (Exception error)//abort etc..
                    {
                        m_Errors.Enqueue(error.ToMessageWithType());
                    }
                });
                m_Traxers.Add(context);
                thread.Start(context);
                added++;
            }

            if (added > 0)
            {
                log("{0} added {1} threads".Args(DateTime.Now, added));
            }

            var removed = 0;

            while ((!chkTraxer.Checked && m_Traxers.Count > 0) || m_Traxers.Count > __threadCount)
            {
                m_Traxers[0].STOP = true;
                m_Traxers.RemoveAt(0);
                removed++;
            }

            if (removed > 0)
            {
                log("{0} removed {1} threads".Args(DateTime.Now, removed));
            }
        }
示例#3
0
        private Person2 make()
        {
            if (cnt > 2)
            {
                return(null);
            }
            cnt++;
            var p1 = new Person2 {
                Name = "Kumir Da", Age = 22, PointA = new Point(25, 36)
            };

            //p1.IntArray = new int[3];
            //p1.IntArray[0] = 11;
            //p1.IntArray[1] = 22;
            //p1.IntArray[2] = 33;


            // p1.StringArray = new string[] {"aaa", "bovin", "zomama"};

            //p1.StringArray2D = new string[2,3];
            //    p1.StringArray2D[1,1] = "Kolya";
            //    p1.StringArray2D[0,2] = "Sima";

            //p1.IntArray3D = new int[2,2,4];
            //    p1.IntArray3D[0,0,0] = 180;
            //    p1.IntArray3D[1,1,3] = -11;

            p1.ObjArray     = new object[150];
            p1.ObjArray[12] = 12;
            p1.ObjArray[13] = true;
            p1.ObjArray[14] = App.LocalizedTime;



            p1.IntList.Add(12);
            p1.IntList.Add(19);
            p1.IntList.Add(-1890);
            p1.IntList.Add(0);
            p1.IntList.Add(991);


            p1.Data1 = "ya loshad!";
            p1.Data2 = TimeSpan.FromHours(12);

            p1.Kozel1.Certified  = true;
            p1.Kozel1.KozelGrade = 789;
            p1.Kozel1.Owner      = new Person2 {
                Name = "Kozlopas", Age = 48
            };

            p1.Kozel2 = new Kozel {
                Certified = false, KozelGrade = 2, Owner = new Person2 {
                    Name = "Soloviev", Age = 98
                }
            };


            p1.Father = new Person2 {
                Name = "Dodik Butcer", Age = 120
            };
            p1.Mother = new Person2 {
                Name = "Feiga Svinarenko", Age = 95, IsHappy = true, MarriageDate = App.LocalizedTime
            };

            p1.Father.Mother = new Person2 {
                Name = "Zlata Butcer", Age = 230, Father = p1
            };
            p1.Sibling1 = new Person2 {
                Name = "Cathy", Age = 17, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 12
            };
            p1.Sibling2 = new Person2 {
                Name = "Jimmy", Age = 34, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 212
            };
            p1.Sibling3 = new Person2 {
                Name = "Bob", Age = 7, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 32
            };
            p1.Sibling4 = new Person2 {
                Name = "Karl", Age = 21, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = -432
            };
            p1.Sibling5 = new Person2 {
                Name = "Oleg", Age = 27, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 552
            };


            p1.Sibling1.Data1  = make();
            p1.Sibling1.Data2  = p1;
            p1.Sibling1.Father = new Person2 {
                Name = "David"
            };
            p1.Sibling1.Father.Data1 = 123;
            p1.Sibling1.Father.Data2 = TimeSpan.FromDays(12.2);
            p1.Sibling1.Father.Data1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!";
            p1.Sibling1.Father.Data2 = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";

            cnt--;
            return(p1);
        }
示例#4
0
        private Person2 make()
        {
            if (cnt>2) return null;
              cnt++;
              var p1 = new Person2{ Name = "Kumir Da", Age = 22 , PointA = new Point(25,36)};

              //p1.IntArray = new int[3];
              //p1.IntArray[0] = 11;
              //p1.IntArray[1] = 22;
              //p1.IntArray[2] = 33;

             // p1.StringArray = new string[] {"aaa", "bovin", "zomama"};

              //p1.StringArray2D = new string[2,3];
              //    p1.StringArray2D[1,1] = "Kolya";
              //    p1.StringArray2D[0,2] = "Sima";

              //p1.IntArray3D = new int[2,2,4];
              //    p1.IntArray3D[0,0,0] = 180;
              //    p1.IntArray3D[1,1,3] = -11;

              p1.ObjArray = new object[150];
              p1.ObjArray[12] = 12;
              p1.ObjArray[13] = true;
              p1.ObjArray[14] = App.LocalizedTime;

              p1.IntList.Add(12);
              p1.IntList.Add(19);
              p1.IntList.Add(-1890);
              p1.IntList.Add(0);
              p1.IntList.Add(991);

              p1.Data1 = "ya loshad!";
              p1.Data2 = TimeSpan.FromHours(12);

              p1.Kozel1.Certified = true;
              p1.Kozel1.KozelGrade = 789;
              p1.Kozel1.Owner = new Person2{ Name = "Kozlopas", Age = 48 };

              p1.Kozel2 = new Kozel{ Certified = false, KozelGrade = 2, Owner = new Person2{Name="Soloviev", Age = 98}};

              p1.Father = new Person2{ Name = "Dodik Butcer", Age = 120 };
              p1.Mother = new Person2{ Name = "Feiga Svinarenko", Age = 95, IsHappy = true, MarriageDate = App.LocalizedTime };

              p1.Father.Mother = new Person2{Name = "Zlata Butcer", Age = 230, Father = p1};
              p1.Sibling1 = new Person2{Name = "Cathy", Age = 17, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 12};
              p1.Sibling2 = new Person2{Name = "Jimmy", Age = 34, IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 212};
              p1.Sibling3 = new Person2{Name = "Bob", Age = 7,    IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 32};
              p1.Sibling4 = new Person2{Name = "Karl", Age = 21,  IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = -432};
              p1.Sibling5 = new Person2{Name = "Oleg", Age = 27,  IsHappy = true, MarriageDate = App.LocalizedTime, Data1 = 552};

              p1.Sibling1.Data1 = make();
              p1.Sibling1.Data2 = p1;
              p1.Sibling1.Father = new Person2{Name="David"};
              p1.Sibling1.Father.Data1 = 123;
              p1.Sibling1.Father.Data2 = TimeSpan.FromDays(12.2);
              p1.Sibling1.Father.Data1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!";
              p1.Sibling1.Father.Data2 = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";

              cnt--;
              return p1;
        }