Alcuni commenti hanno menzionato l'esecuzione di uno strumento di profilatura per dimostrare quale ha prestazioni migliori.
Questo è un problema, ma il modo più semplice per verificare l'esecuzione di istruzioni specifiche è metterli in un ciclo e utilizzare la classe Cronometro.
Jeff Atwood ha chiesto di rendere questo tipo di tempistica ancora più semplice in this question. In quella domanda e risposta troverai anche alcuni esempi di codice e dettagli di sfondo.
Heres un esempio molto semplice di lavoro:
System.Diagnostics.Stopwatch sw=new System.Diagnostics.Stopwatch();
int a = 5;
string b = "5";
sw.Start();
for (int i=0;i<1000000;i++)
{
if(a == int.Parse(b))
{
}
}
sw.Stop();
Console.WriteLine("a == int.Parse(b) milliseconds: " + sw.ElapsedMilliseconds);
sw.Reset();
sw.Start();
for (int i=0;i<1000000;i++)
{
if(a.ToString() == b)
{
}
}
sw.Stop();
Console.WriteLine("a.ToString() == b milliseconds: " + sw.ElapsedMilliseconds);
Sul mio computer essa stampa:
a == int.Parse (b) millisecondi: 521
a.ToString() = = b millisecondi: 697
Quindi in questo semplice scenario int.Parse() è leggermente più veloce, ma non abbastanza per preoccuparsi veramente.
Risposta di magazzino per queste domande: hai provato a profilare effettivamente i dati? –
Im a noob:/Come faccio a profilare questo? –
Esegui entrambe le varianti in un ciclo di alcune migliaia o milioni di iterazioni e misura il tempo necessario. – Joey