J'ai quelques fonctions écrites en C pour un projet de jeu. Ces fonctions s'appellent beaucoup (environ 2000-4000 fois par seconde). Les fonctions sont écrites en C pour la vitesse brute. Maintenant, la façon la plus simple d'inclure ces fonctions dans Python est d'utiliser ctypes
. L'alternative est d'écrire une extension C vers Python autour de ces fonctions (ce qui demande un peu plus d'effort). Donc, je me demandais, sans compter le chargement initial de la DLL, quelle est la surcharge de ctypes
?ctypes vs extension C
J'utilise Python 2.7 (la version standard CPython), et je ne veux pas utiliser une bibliothèque externe comme Cython.
Je sais que cette question a été posée auparavant, mais je n'ai pas vu beaucoup d'informations sur la comparaison des performances entre les deux options.
Eh bien, le JIT de PyPy peut produire un très bon code pour les appels 'ctypes' depuis une version ou deux. Vous voudrez peut-être essayer. Je ne poste pas cela comme une réponse parce que je n'ai pas de données concrètes à portée de main et il n'est pas clair si le changement d'interprète est une option pour vous. – delnan
Je m'attendrais à ce que les frais généraux soient similaires. –
@Delnan: C'est un jeu que je vais expédier - aussi à linux. Je ne peux pas demander à mes utilisateurs d'installer PyPy. – orlp