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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • ipsy

    ipsy

    1 EKİM 2012
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012