Il tempo di conteggio System.Diagnostics.Stopwatch
durante l'attesa del computer?.NET Stopwatch standby/sospensione/ibernazione è in funzione?
15
A
risposta
3
sì lo fa.
Guardando il codice in Reflector dimostra che se non è Stopwatch.IsHighResolution
, allora sarà utilizzare il conteggio tick (nel mio ambiente, il valore era false
quindi userà DateTime.UtcNow.Ticks
):
public void Start()
{
if (!this.isRunning)
{
this.startTimeStamp = GetTimestamp();
this.isRunning = true;
}
}
public static long GetTimestamp()
{
if (IsHighResolution)
{
long num = 0L;
SafeNativeMethods.QueryPerformanceCounter(out num);
return num;
}
return DateTime.UtcNow.Ticks;
}
+0
Sì, lo fa. Ma molto impreciso. Vedi la mia risposta. –
3
In realtà, dopo un po 'di test, lo appare conteggio, ma era lontano. Questo è quello che ho fatto:
- scritto il codice qui sotto
- lo gestisce, e subito messo il mio computer in sospensione modalità
- aspettato 10 secondi e ha portato il mio computer back up
Il risultato è stato un sorprendente periodo di Elapsed
di oltre 4 minuti. Lontano. Quindi non lo userei come alcun tipo di benchmark.
Ecco il codice che ho usato:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace TestingCode
{
class Program
{
static void Main(string[] args)
{
Stopwatch testing = new Stopwatch();
testing.Start();
Console.WriteLine("Press any key to stop timer");
Console.ReadKey();
testing.Stop();
Console.WriteLine("Elapsed: {0}", testing.Elapsed);
Console.WriteLine("Done!!");
Console.ReadKey();
}
}
}
Problemi correlati
- 1. Stopwatch è davvero rotto?
- 2. Come utilizzare StopWatch più volte in C#?
- 3. StopWatch vs Timer - Quando utilizzare
- 4. Timer ad alte prestazioni vs StopWatch
- 5. Funzione PHP crypt() in .Net?
- 6. Perché DateTime.Now e StopWatch vanno alla deriva?
- 7. Chiama una funzione Haskell in .NET
- 8. La funzione hash della stringa .NET è portatile?
- 9. C#. NET Funzione GetHashCode domanda
- 10. Java Stopwatch che aggiorna la GUI ogni secondo?
- 11. Eventi di symfony StopWatch non visualizzati nella timeline di profiler
- 12. Sovraccarico delle prestazioni per le proprietà in .NET
- 13. Progetto mono: perché è mono più veloce di .NET?
- 14. Perché .NET è stato chiamato .NET?
- 15. Perché ConcurrentBag <T> è così lento in .Net (4.0)? Sto sbagliando?
- 16. Funzione del nastro con .Net 4.5
- 17. Chiama la funzione Python da C# (.NET)
- 18. Timer di precisione in .NET
- 19. Valore di ritorno di accesso dalla funzione VBA in .NET?
- 20. Qual è la differenza tra proprietà readonly e funzione in .net?
- 21. Qual è la ragione di questa enorme differenza di prestazioni in .Net 4
- 22. Funzione .NET incorporata per caratteri di escape in streaming XML?
- 23. Come si convertono i tick di Stopwatch in nanosecondi, millisecondi e secondi?
- 24. Qual è l'uso di Invoke() in .net?
- 25. In .Net/C#, è null fortemente tipizzato?
- 26. Qual è l'equivalente di JPA in .NET?
- 27. Qual è l'attributo 'CLSCompliant' in .NET?
- 28. Adodb.dll è incluso in una distribuzione .NET?
- 29. Qual è l'equivalente di System.nanoTime() in .NET?
- 30. È incluso WebProtocolException in .net 4.0?
Domanda interessante, Ho sempre usato Cronometro solo per la profilazione di un uomo povero, quindi non mi è mai venuto in mente. – Davy8
Buona domanda .... provalo e facci sapere :) –
Come puoi vedere dalla risposta, questo è un comportamento specifico dell'implementazione. Il contatore è avvolto dal Hardware Abstraction Layer del sistema operativo, offrendo ai progettisti dell'hardware numerose opzioni per tagliare i penny. –