SORU
26 AĞUSTOS 2008, Salı


DateTime.Şimdi en iyi şekilde ölçmek için bir fonksiyonu'performans s?

Performans sorunu bulmam lazım ve mümkün olduğunca doğru zamanı ölçmek lazım.

Aşağıdaki kod performansını ölçmenin en iyi yolu, parçacık mı?

DateTime startTime = DateTime.Now;

// Some execution process

DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);

CEVAP
26 AĞUSTOS 2008, Salı


Hayır, değil. Stopwatch (System.Diagnostics) kullanın

Stopwatch sw = Stopwatch.StartNew();
PerformWork();
sw.Stop();

Console.WriteLine("Time taken: {0}ms", sw.Elapsed.TotalMilliseconds);

Kronometre otomatik olarak hassasiyeti yüksek sayaçlar varlığını denetler.

DateTime.Now sık sık dilimleri, DST ile yapılacak olan çalışma nedeniyle biraz DateTime.UtcNow daha yavaş oldukça kayda değer ve böyle.

DateTime.UtcNow genellikle 15 ms çözünürlüğe sahip. Harika bir özet için DateTime.Now hassas John Chapman's blog post bkz.

İlginç bilgiler: eğer donanımınız desteklemiyor diye kronometre geri düşüyor DateTime.UtcNow yüksek frekans sayacı. Kontrol ederseniz Kronometre donanım statik Alanı Stopwatch.IsHighResolution bakarak yüksek hassasiyet elde etmek için kullanıyorsa görebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Animation Workshop

    Animation Wo

    8 NİSAN 2010
  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • Michael Zhang

    Michael Zhan

    8 EYLÜL 2012