Mam kilka funkcji napisanych w C dla projektu gry. Funkcje te nazywane są całkiem często (około 2000-4000 razy na sekundę). Funkcje są napisane w C dla surowej prędkości.ctypes vs rozszerzenie C
Teraz najłatwiejszym sposobem włączenia tych funkcji do Pythona jest użycie ctypes
. Alternatywą jest napisanie rozszerzenia C do Pythona wokół tych funkcji (co wymaga sporo dodatkowego wysiłku). Więc zastanawiałem się, nie wliczając początkowego ładowania biblioteki DLL, jak duże jest obciążenie związane z ctypes
?
Używam Python 2.7 (standardowe wydanie CPython) i nie chcę używać zewnętrznej biblioteki, takiej jak Cython.
Wiem, że to pytanie zostało zadane wcześniej, ale nie widziałem wiele informacji na temat porównania wydajności dwóch opcji.
Cóż, JIT PyPy może produkować całkiem niezły kod dla wywołań 'ctypes' od wydania lub dwóch. Możesz chcieć dać mu szansę. Nie publikuję tego jako odpowiedzi, ponieważ nie mam dostępu do twardych danych i nie jest jasne, czy zmiana tłumacza jest dla ciebie opcją. – delnan
Spodziewam się, że koszty ogólne będą podobne. –
@Delnan: To jest gra, którą zamierzam wysłać - również do Linuksa. Nie mogę poprosić moich użytkowników o zainstalowanie PyPy. – orlp