Advertisement
Guest User

MainForm.cs

a guest
Dec 5th, 2012
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.37 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Threading;
  10. using System.Diagnostics;
  11. using System.Runtime.CompilerServices;
  12. using System.IO;
  13.  
  14. namespace Simple_Benchmark
  15. {
  16.     public partial class MainForm : Form
  17.     {
  18.         public int zahl;
  19.         public Stopwatch stopwatch = new Stopwatch();
  20.         public MainForm()
  21.         {
  22.             InitializeComponent();
  23.         }
  24.  
  25.         private void Main_Load(object sender, EventArgs e)
  26.         {
  27.             berechnenButton.Enabled = true;
  28.         }
  29.         static PerformanceCounter cpuCounter; // globaler PerformanceCounter
  30.         static void InitialisierePerformanceCounter() // Initialisieren
  31.         {
  32.             cpuCounter = new PerformanceCounter();
  33.             cpuCounter.CategoryName = "Processor";
  34.             cpuCounter.CounterName = "% Processor Time";
  35.             cpuCounter.InstanceName = "_Total"; // "_Total" entspricht der gesamten CPU Auslastung, Bei Computern mit mehr als 1 logischem Prozessor: "0" dem ersten Core, "1" dem zweiten...
  36.         }
  37.  
  38.         static float GetCPUusage() // Liefert die aktuelle Auslastung zurück
  39.         {
  40.             return cpuCounter.NextValue();
  41.         }
  42.  
  43.  
  44.  
  45.         private void berechnenButton_Click(object sender, EventArgs e)
  46.         {
  47.             try
  48.             {
  49.                 berechnenButton.Enabled = false;
  50.                 long m = 0;
  51.                 if (string.IsNullOrWhiteSpace(textBox1.Text))
  52.                 {
  53.                     MessageBox.Show("Der Wert darf nicht null sein!", "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  54.                     berechnenButton.Enabled = true;
  55.                     return;
  56.                 }
  57.                 try
  58.                 {
  59.                     m = Convert.ToInt64(textBox1.Text);
  60.                 }
  61.                 catch (FormatException fe)
  62.                 {
  63.                     MessageBox.Show("Der Wert muss eine Zahl sein!", "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  64.                     berechnenButton.Enabled = true;
  65. #if DEBUG
  66.                 MessageBox.Show("Fehler: " + fe.ToString(), "Fehler!", MessageBoxButtons.OK , MessageBoxIcon.Error);
  67. #endif
  68.                     return;
  69.                 }
  70.                 if (m >= 500000000)
  71.                 {
  72.                     MessageBox.Show("Bei einem zu großen Wert kann das Programm eventuell nicht mehr reagieren!", "Warnung!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  73.                 }
  74.                 InitialisierePerformanceCounter();
  75.                 Stopwatch s1 = Stopwatch.StartNew();
  76.                 float auslastung1 = 0;
  77.                 auslastung1 = GetCPUusage();
  78.                 for (int i = 0; i < m; i++)
  79.                 {
  80.                 }
  81.                 s1.Stop();
  82.                 Stopwatch s2 = Stopwatch.StartNew();
  83.                 float auslastung2 = 0;
  84.                 auslastung2 = GetCPUusage();
  85.                 for (int i = 0; i < m; i++)
  86.                 {
  87.                 }
  88.                 s2.Stop();
  89.                 Stopwatch s3 = Stopwatch.StartNew();
  90.                 float auslastung3 = 0;
  91.                 auslastung3 = GetCPUusage();
  92.                 for (int i = 0; i < m; i++)
  93.                 {
  94.                 }
  95.                 s3.Stop();
  96.                 double DurchschnittAuslastung = Math.Round(Convert.ToDouble((auslastung1 + auslastung2 + auslastung3) / 3), 0);
  97.  
  98.                 double DurchschnittZeit = Math.Round(Convert.ToDouble((s1.ElapsedMilliseconds + s2.ElapsedMilliseconds + s3.ElapsedMilliseconds) / 3), 3);
  99.                 zeitLabel.Text = DurchschnittZeit + "ms";
  100.                 cpuAuslastungLabel.Text = DurchschnittAuslastung + "%";
  101.                 berechnenButton.Enabled = true;
  102.                 MessageBox.Show("Zeit: " + DurchschnittZeit + "ms" + "\r\n" + "CPU Auslastung: " + DurchschnittAuslastung + "%", "Ergebnis", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  103.             }
  104.             catch (Exception ex)
  105.             {
  106.                 MessageBox.Show("Ein Fehler ist aufgetreten!", "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  107. #if DEBUG
  108.                 MessageBox.Show("Fehler: " + ex.ToString(), "Fehler!", MessageBoxButtons.OK, MessageBoxIcon.Error);
  109. #endif
  110.             }
  111.         }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement