[OT] (io vivo OT) Per migliorare la mia terribile funzione ricorsiva, si potrebbe sempre compilarla con Cython: si sto cazzeggiando al lavoro … :-)
* pure python: 0.938 s * cyton compiled: 0.510 s * cython compiled with types: 0.365 s Che ne pensate di cython, vale la pena utilizzarlo o e' una perdita di tempo? Ciao! On Jul 11, 2012, at 10:33 AM, enrico franchi wrote: > 2012/7/11 Davide Rambaldi <davide.ramba...@gmail.com>: >>> >>> Tornando al tuo esempio, la versione con yield ti e' venuta cosi', >>> naturale, ed e' assolutamente buona. >>> La versione "competitiva" ricorsiva (al di la di problemi semantici >>> strutturali di python) lo e' un po' meno. >> >> Beh diciamo che se yield fosse stato piu' lento della mia fibonacci >> ricorsiva, mi sarei veramente preoccupato…. :-) >> >> quella atroce funzione che mi porto in giro dei tempi della scuola mi serve >> come "lower limit" > > Appunto: con una versione ricorsiva con accumulatore avresti visto che > scoppia perche' scoppia lo stack, ma per il resto non e' oltremodo > lenta (sempre piu' lenta di una cosa iterativa, visto e considerato > che le chiamate di funzione hanno in se e per se un costo non > indifferente in Python). > > Quello che vorrei scoraggiare e' vedere yield come strumento per le > perforamance: accidentalmente puo' fare anche questo. Ma io direi che > e' soprattutto uno strumento generale per risolvere una certa classe > di problemi in modo comodo ed elegante. La classe di problemi e' > "generare una sequenza di valori". > > Da cui ovviamente discende fibonacci, l'iterazione con un qualunque > criterio sugli elementi di una struttura dati, ma anche la generazione > di una sequenza di linee \n-terminated a partire da quello che esce da > un socket. Per dire. > > > -- > . > ..: -enrico- > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python