Ho provato ad eseguire un numero grande di cicli for in cui si esegue una moltiplicazione e una divisione:
1) in c++
2) in c#
3) da una dll scritta in c++, ma passando a c# i risultati a attraverso "PInvoke"
I risultati sono stati che il ciclo viene completato su di un vecchio pc in:
1) circa 38 secondi
2) circa 33 secondi
3) circa 50 secondi
Qualcuno mi sa spiegare i motivi per cui ottengo questi risultati?
Premetto che il c++ non lo conosco bene ed ho scritto poche linee di codice solo per fare questo esperimento.
codice:
float Ti= clock(); // Tempo iniziale
double x = 1.05;
for (int var_contatore=1; var_contatore < 1400000000; var_contatore++)
{
x = x * 1.000011564;
x = x / 1.000011562;
}
float Tf= clock(); // Tempo finale
float TempoAccumulato = Tf -Ti; // tempo conteggiato dal reset
cout << "x=" << x;
cout << "t=" << TempoAccumulato;