Le tableau suivant montre les résultats d'un benchmark comparant plusieurs ORM Python pour l'import des 10000+ termes de la classification médicale CIM10 (écriture), et ensuite pour parcourir les termes (lectures).

Tous les ORM utilisent SQLite3. De plus, une version en SQL pur (non-object) a été testée.

Résultats:

Module

Écriture

Lecture

Espace disque

Lignes de code

Héritage

SQLAlchemy 1.1.13

20.32 secondes

6.41 secondes

962 560 octets

42 lines

simple (?)

SQLObjet 3.4.0

7.58 secondes

2.19 secondes

966 656 octets

35 lines

simple

Peewee 2.10.1

5.37 secondes

2.08 secondes

962 560 octets

35 lines

simple (?)

Pony 0.7.2

7.10 secondes

0.61 secondes

958 464 octets

35 lines

multiple (partiel)

Owlready 2 0.3

1.41 secondes

0.85 secondes

4 235 264 octets

38 lines

multiple (complet)

ORMithorynque

1.65 secondes

0.49 secondes

1 269 760 octets

31 lines

multiple (complet)

SQL (non-objet)

1.12 secondes

0.19 secondes

966 656 octets

45 lines

aucun

(pour les chiffres, les plus faibles valeurs sont les meilleures)

ORMithorynque bat tous les autres ORM pour la vitesse. Il demande aussi moins de ligne de code (principalement grâce à la création et la mise à jour automatique du schéma de la base).

ORMithorynque produit des bases de données plus volumineuses que les autres ORM. Ce résultat était attendu car ORMithorynque nécessite une table supplémentaire pour stocker les noms des classes, à cause du support de l'héritage multiple.