25/01/09 0:00
pierotofy
Beh così ad occhi direi che fare una sola chiamata anzichè 3 è più veloce, ma per fare un benchmark abbastanza accurato puoi registrare il tickcount prima di far partire l'algoritmo, fare la stessa cosa alla fine, fare la differenza dei due ticks e ottieni il numero di millisecondi che sono passati dall'inizio alla fine.
25/01/09 0:34
NicobhC
E come si fa più precisamente?
aaa
25/01/09 1:41
eddiewrc
dunque..
prima di tutto devi documentarti su come funziona la scanf: se ogni scanf corrisponde a una system call allora significa che fare 3 scanf "costa" + di una sola, ma se invece ogni lettura è una sys call singola allora nn c'è differenza su quante scanf usare. (io nn so così precisamente come agisce).
seconda cosa, se ci tieni alla velocità io ti consiglio di usare invece di fscanf le funzioni per lavorare sui file che x quanto ne so sono le + veloci che il C fornisce: fread e fwrite!
specifiche, uso e argomenti (che sono molto semplici) le puoi trovare ovunque.
infine, per misurare la velocità di esecuzione c'è un metodo molto semplice:
prima del blocco di codice da cronometrare scrivi
time_t fine, start = time(NULL);
{codice}
fine = time(NULL);
printf("\nTempo trascorso = %d sec\n", difftime(fine, start));
che ti restituirà il numero di secondi trascorso.
se nn funziona (ma te ne accorgi dal segno) inverti gli argomenti di diffitime o usa un altro descrittore invece di %d (%lf x es)
aaa
25/01/09 14:30
eddiewrc
cerca nelle funzioni di time.h delle funzioni che facciano al caso tuo!
aaa