Ciao a tutti,<br>mi stò studiando un po&#39; l&#39;architettura di python e sono dunque al GIL. <br>Premetto che il mio scopo è puramente a scopo didattico, non sono qui a parlare di quanto sia bello o brutto il GIL, ma<br>
sentitevi liberi di esprimere qualsiasi parere anche personale ;-)<br>Guardando indietro nei messaggi di questa ML ho trovato altro e mi sono scaricato &quot;Inside the Python GIL&quot; di David Beazley.<br>L&#39;ho quasi letto tutto (mi mancano proprio le ultime tre-quattro pagine) e ho voluto ripetere i test.<br>
Ho riscritto la medesima funzione CPU-bound (non mi viene un equivalente italiano, forse &quot;che sfrutta la sola CPU&quot;?) [1] e l&#39;ho adattata a tre test:<br>1) non posto il sorgente in quanto è un semplice test sequenziale &quot;count(100000000); count(100000000)&quot;<br>
2) usando il multithreading ed effettivamente si nota la differenza (anche a me 2x più lento o peggio) [2]<br clear="all">3) usando la fork [3]<br><br>Ho aggiunto il test per la fork in quanto creando un nuovo processo il GIL non dovrebbe dare problemi, giusto?<br>
Beh ecco i risultati sul mio P4 3,00GHz:<br>1) sequenziale<br>----------------------<br>real    0m35.363s<br>user    0m34.831s<br>sys    0m0.087s<br>----------------------<br>2) threaded<br>----------------------<br>real    1m30.482s<br>
user    1m25.342s<br>sys    0m28.125s<br>----------------------<br>3) forked<br>----------------------<br>real    0m52.938s<br>user    1m30.927s<br>sys    0m0.395s<br>----------------------<br><br>Come mai con il fork c&#39;è comunque un rallentamento?<br>
Dipende solamente dal tempo richiesto per creare un nuovo processo (e comunque 19 secondi mi sembrano troppi) o c&#39;è qualcos&#39;altro?<br><br>[1] <a href="http://paste.pocoo.org/show/kjq0U2opWJIAxm3bqYHK/">http://paste.pocoo.org/show/kjq0U2opWJIAxm3bqYHK/</a><br>
[2] <a href="http://paste.pocoo.org/show/7LAdKtPHLtAjiGltOzkf/">http://paste.pocoo.org/show/7LAdKtPHLtAjiGltOzkf/</a><br>[3] <a href="http://paste.pocoo.org/show/QCdRBl0ODL3M2QsZIH73/">http://paste.pocoo.org/show/QCdRBl0ODL3M2QsZIH73/</a><br>
<br>A presto,<br>ciao!<br><br>-- <br>Alessandro A.<br>