On 18/03/2014 13:13, Guido Brugnara wrote: > Mi sono imbattuto in questo articolo: > > http://raid6.com.au/~onlyjob/posts/arena/ > > che espone i risultati del confronto di codice scritto in alcuni > linguaggi valutando velocità e occupazione di memoria. Uhm... Il metodo per la valutazione delle prestazioni dei vari linguaggi è descritto in questo modo: Test code grows text string by adding another string in cycle until it grows up to 4 mb. Each iteration substitutes some text. Every time string becomes 256 KiB larger program prints number of seconds passed since beginning of test. App's output is being piped to script capturing memory usage (using memstat) for every line printed. e già mi pare un caso molto limitato per valutare le prestazioni di un linguaggio di programmazione. Inoltre le implementazioni nei vari linguaggi mi sembrano poco idiomatiche: il codice Python è scritto in un modo in cui nessun programmatore con conoscenza del linguaggio lo scriverebbe. Questa versione (che non è la più efficiente possibile) che ho messo assieme velocemente è ~500 più veloce di quella usata per il benchmark (e dunque più veloce della versione in C, solo per dire quanto male quel C sia scritto): import re import time string = 'abcdefgh' + 'efghefgh' starttime = time.time(); print "exec.tm.sec\tstr.length" for i in xrange(1, 17): s = ''.join(string for x in xrange(i * 256 * 1024 / len(string))) s = re.sub('efgh', '____', s) print time.time() - starttime, "sec\t\t", (len(s) / 1024), "kb" Non mi sembra un granché come confronto. Confrontare linguaggi diversi è interessante soprattutto per confrontarne l'espressività e per capire come linguaggi con diverse peculiarità portino a risolvere i problemi in modi diversi. Tradurre pari pari del codice originalmente pensato per un linguaggio in un altro porta solo a codice scritto male... Ciao, Daniele -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx