Ho alcune funzioni scritte in C per un progetto di gioco. Queste funzioni vengono chiamate molto (circa 2000-4000 volte al secondo). Le funzioni sono scritte in C per la velocità raw.estensione ctypes vs C
Ora, il modo più semplice per me di includere queste funzioni in Python è utilizzare ctypes
. L'alternativa è scrivere un'estensione C in Python attorno a queste funzioni (che richiede un notevole sforzo in più). Quindi mi sono chiesto, a parte il caricamento iniziale della DLL, quanto è grande l'overhead di ctypes
?
sto usando Python 2.7 (la versione standard di CPython), e non voglio usare una libreria esterna come Cython.
So che questa domanda è stata fatta prima, ma non ho visto molte informazioni sul confronto delle prestazioni tra le due opzioni.
Bene, il JIT di PyPy è in grado di produrre codice molto bello per chiamate 'ctypes' da una release o due. Potresti volergli dare un colpo. Non lo invio come risposta perché non ho a disposizione dati complessi e non è chiaro se cambiare interpreti sia un'opzione per te. – delnan
Mi aspetto che il sovraccarico sia simile. –
@Delnan: Questo è un gioco che sto per spedire - anche a Linux. Non posso chiedere ai miei utenti di installare PyPy. – orlp