Performances de Python 3.*

Bonne nouvelle, il semble que les performances de Python 3 saméliorent significativement. Nous sommes nombreux à avoir constaté un effondrement des performances surtout lors de l’utilisation ditérateurs. J’avais évoqué ce problème en comparant les temps de construction d’un arbre binaire à partir de données récupérées depuis une base MongoDB (avec pymongo). Pour mémoire le chargement de 50.563 articles dans le graphe prenait environ 0,9 secondes avec Python 2.7.3 et 12,9 secondes avec Python 3.2.3. La différence est énorme.

<td>
  50.563
</td>

<td>
  50.563
</td>

<td>
  50.563
</td>

<td>
  50.563
</td>

<td>
  52.912
</td>
<th>
  Python 2.7.3
</th>

<th>
  Python 3.1.3
</th>

<th>
  Python 3.2.3
</th>

<th>
  3.3.1rc1
</th>

<th>
  3.3.1rc1
</th>
<td>
  <i>0,94903397</i>
</td>

<td>
  5,785764
</td>

<td>
  12,9370689
</td>

<td>
  <i>0,5322029</i>
</td>

<td>
  0,5537478
</td>
<td>
  4,757379
</td>

<td>
  4,3168029
</td>

<td>
  2,733838
</td>

<td>
  2,491816
</td>

<td>
  3,000731
</td>
<td>
  5,950
</td>

<td>
  11,461
</td>

<td>
  15,958
</td>

<td>
  3,225
</td>

<td>
  3,771
</td>
Tableau récapitulatif (temps exprimé en secondes)
Nombre d'articles chargés
dans le graphe
Phase
Chargement des articles
Génération de l'arbre
Exécution globale du script

Observez les temps en italique dans le tableau (phase Chargement des articles). Python 3.3.1 fait mieux que Python 2.7.3 alors que Python 2.7.3 était beaucoup plus rapide que Python 3.2.3. Le progrès est incontestable, je n’ai rien changé au code utilisé pour ce benchmark. Les améliorations concernant les itérateurs profitent largement à pyAggr3g470r. Si vous utilisez pyAggr3g470r, je vous recommande donc chaudement dinstaller Python 3.3.

Pour la phase Génération de l’arbre, avec Python 3.3.1 nous sommes à 2,49 secondes et avec Python 2.7.3 à 4,75 secondes. C’est beaucoup mieux et les itérateurs ne sont pas utilisés à ce niveau. Voyez l’implémentation de l’arbre binaire ordonné utilisée.

Le développement de Python va dans la bonne direction. J’espère que Python 3 sera bientôt par défaut sur la majeure partie des distributions GNU/Linux.

Related Posts