La funzione C int is_punctuation(char c)
, contenuta nel fileE1-punt/e1.c
, verifica se il suo parametro c
è un carattere di punteggiatura preso da una lista limitata. Scrivere una versione ottimizzata della funzione nel file E1-punt/e1_sol.c
.
Usare il main di prova nella directory di lavoro.
Confrontare con il comando time
le prestazioni ad esempio sul testo della Costituzione della Repubblica Italiana, come nel seguente esempio
> time ./e1 costituzione_italiana.txt
Caratteri di punteggiatura: 262 su 88975 (0.29%) in costituzione_italiana.txt
real 0m2.548s
user 0m2.541s
sys 0m0.003s
> time ./e1-sol costituzione_italiana.txt
Caratteri di punteggiatura: 262 su 88975 (0.29%) in costituzione_italiana.txt
real 0m1.329s
user 0m1.325s
sys 0m0.003s
>
Si vuole simulare un sistema software (puramente astratto) basato su una lista in cui agenti possono inviare azioni da compiere (accept) e il sistema mano mano le elimina dopo avere effettuate (purge). La simulazione si svolge nella funzione void run(int trials, int *accepted, int *purged)
nel file E2-Loaad_Balancing/e2.c
alternando carico e scarico per trials
volte.
Scrivi una versione ottimizzata del file e2.c
nel file e2_opt.c
. Profila innanzitutto la funziona più costosa con gprof
nel programma originale e agisci di conseguenza. Puoi modificare solo e2_opt.c
e nessun altro file del repository.