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

  • RyanXLT

    RyanXLT

    22 Ocak 2011
  • SRI International

    SRI Internat

    30 NİSAN 2008
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006