Msdn'de soldaki TreeView'de StackTrace sınıfını incelemek isterken hemen altında bulunan StopWatch sınıfı isminden dolayı baya bir gözüme battı. Neymiş diye incelerken çoğumuzun bir kodun ne kadar süre çalıştığını test etmek için DateTime.Now ile o anki zaman değerini alıp kod bitiminde Datetime.Now ile zaman değerinden bir önceki değeri çıkarma işlemini yaparız. StopWatch sınıfı ile çok daha hassas ve kesin ( Daha alt sistem API'lerini kullandığınu söyledi google ;) ) değer alabiliyormuşuz. Kullanımına dair örnek kod aşağıda.

private void button1_Click(object sender, EventArgs e)
{
   System.Diagnostics.Stopwatch diff = new System.Diagnostics.Stopwatch();
   diff.Start();
   for (int i = 0; i < 2000000; i++)
   {
      int x = i >> 2 << 22 >> 222 << 2222 >> 22222 << 222222;
   }
   diff.Stop();
   label1.Text = diff.Elapsed.ToString();
}       

DateTime ile aynı kodu şu şekilde test ettim.

long t = DateTime.Now.Ticks;
for (int i = 0; i < 2000000; i++)
{
   int x = i >> 2 << 22 >> 222 << 2222 >> 22222 << 222222;
}
long t1 = DateTime.Now.Ticks;
label1.Text = (t1 -t).ToString();

Sonuç ya 0 (yazı ile sıfır) ya da 156250 iken aynı kodu StopWatch sınıfını kullanarak test ettiğimde 28400 ile 28800 arasında sonuçlar verdi.
 
Tuesday, May 27, 2008 12:57:26 AM (GTB Daylight Time, UTC+03:00)
Ticks yerine Milisecond kullanırsanız daha gerçekçi sonuç alırsınız.
Sunday, November 01, 2009 3:10:55 AM (GTB Standard Time, UTC+02:00)
Thanks for article. Everytime like to read you.
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview