示例#1
0
        public Display(Stats owner, TaskMeter meter)
        {
            this.owner = owner;
            this.meter = meter;
            task       = meter.Name;

            KnownColor c = (KnownColor)((int)meter.VisualColor);

            brush = new SolidBrush(Color.FromKnownColor(c));
        }
 public void MeterCreation()
 {
     if (!TaskMeter.MeasurementIsUnderway())
     {
         // create taskmeters during warmup!
         meters[metercount % 10] = new TaskMeter("meter number " + metercount);
         metercount++;
     }
     else
     {
         for (int j = 0; j < 10; j++)
         {
             meters[j].Measure(() => { for (int i = 1; i < 1000; i++)
                                       {
                                           ;
                                       }
                               });
         }
     }
 }
示例#3
0
 /// <summary>
 /// Itentifies that a task meter should measure speadup compared to a test meter.
 /// </summary>
 public static void MeasureSpeedup(TaskMeter before, TaskMeter after)
 {
     after.ReferenceMeter = before;
 }
示例#4
0
        public void RefreshData()
        {
            // set defaults
            this.maxticks = 1 + (long)(Metering.end * 1.2); // leave some extra room on the right
            this.scale    = Metering.scale;
            leftticks     = 0;
            widthticks    = maxticks;

            // add missing rows / delete superfluous rows
            {
                Dictionary <TaskMeter, Display>    displaymap  = new Dictionary <TaskMeter, Display>();
                Dictionary <DataGridViewRow, bool> toberemoved = new Dictionary <DataGridViewRow, bool>();

                foreach (DataGridViewRow r in dataGridView1.Rows)
                {
                    Display   display = r.Cells[display_col].Value as Display;
                    TaskMeter meter   = display.meter;
                    displaymap.Add(meter, display);
                    if (meter.Intervals == null)
                    {
                        toberemoved.Add(r, true);
                    }
                }
                foreach (DataGridViewRow r in toberemoved.Keys)
                {
                    dataGridView1.Rows.Remove(r);
                }

                List <TaskMeter> meters = TaskMeter._Tasks;
                lock (meters)
                {
                    foreach (TaskMeter m in meters)
                    {
                        if (!displaymap.ContainsKey(m))
                        {
                            if (m.Intervals != null)
                            {
                                Display d = new Display(this, m);
                                dataGridView1.Rows.Add(d.Format());
                                displaymap.Add(m, d);
                            }
                        }
                    }
                }

                dataGridView1.Sort(this);

                // add references
                foreach (KeyValuePair <TaskMeter, Display> kvp in displaymap)
                {
                    if (kvp.Key.ReferenceMeter != null && displaymap.ContainsKey(kvp.Key.ReferenceMeter))
                    {
                        kvp.Value.refdisplay = displaymap[kvp.Key.ReferenceMeter];
                    }
                    else
                    {
                        kvp.Value.refdisplay = null;
                    }
                }
            }

            foreach (DataGridViewRow r in dataGridView1.Rows)
            {
                (r.Cells[display_col].Value as Display).RefreshData();
            }

            UpdateScrollBar();
            UpdateTextBox();
            UpdateZoom();

            UpdateView();
        }
示例#5
0
        private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            TaskMeter meter = (e.Row.Cells[display_col].Value as Display).meter;

            meter.Enabled = false;
        }