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

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008