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

  • khloe brooks

    khloe brooks

    25 Temmuz 2011
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • Tianna Sierra Dance

    Tianna Sierr

    16 EYLÜL 2013