Qualità. Costante. Nel tempo.

Sto lavorando sulla nuova versione di Install-O-Matic.

Sono arrivato ad un punto dove devo calcolare l’hash MD5 di un pacchetto (servirà per le funzioni di aggiornamento). Nella vecchia versione, lanciavo un programma esterno, md5.exe, e leggevo il valore in uscita. E’ un’operazione abbastanza… brutta.

Cercando alternative, ho trovato una libreria che mi permette di calcolare l’md5 internamente, con le sole funzioni del linguaggio di programmazione.

Ma poi mi son posto una domanda: quale dei due modi è più performante? Chiamare un programma esterno, o calcolarlo internamente?

Così ho scritto velocemente un programma che calcola 1000 volte l’MD5 di uno stesso file, usando i due metodi e misurando il tempo impiegato ogni volta. Inoltre, non eseguo i due calcoli in modo alternato ma in sequenza casuale, per evitare ottimizzazioni varie hw/sw (prefetch di vario tipo che non conosco, ma che voglio evitare).

Di media, per un file di 47 MB, i tempi (ms) sono:

Intel Core i7 920 @ 2.67 Ghz:
Interno: 352 Md5.exe: 322

Intel Atom 330 @ 1.60 Ghz:
Interno: 1407 Md5.exe: 483

Via C7 @ 1000 Mhz:
Interno: 3595 Md5.exe: 964

Per non saper né leggere né scrivere, penso che usare md5.exe (http://www.fourmilab.ch/md5/) sia la soluzione migliore. Quindi continuerò ad usare lo stesso metodo. Ma ora so che è il metodo migliore per l’utente finale.

Nota per i più nerd: Certo, potevo studiarmi come funzionava l’hash MD5 e costruirmi una funzione, ma sicuramente non sarebbe stata ottimizzata abbastanza per battere questi tempi. E poi Install-O-Matic è GRATIS :P

 

1 pensiero su “Qualità. Costante. Nel tempo.

  1. Ely

    in questi momenti mi sento la reincarnazione del piu antico degli antinerd o nonerd o unnerd……

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.