Сообщество Python опубликовало полезные справочные материалы, показывающие, как профиль Python-кода и технические детали расширений Python на C или в Cython. Я все еще ищу учебники, которые показывают, однако, для нетривиальных программ Python следующее:
- Как определить горячие точки, которые выиграют от оптимизации путем преобразования в расширение C.
- Точно так же, как определить горячие точки, которые не получат выгоды от преобразования в расширение C
- Наконец, как сделать соответствующее преобразование с Python на C, либо используя C-API Python, либо (возможно, даже предпочтительно) с помощью Cython.
Хороший учебник предоставит читателю методологию о том, как рассуждать с помощью проблемы оптимизации, проработав полный пример. Мне не удалось найти такой ресурс.
Знаете ли вы (или вы написали) такой учебник?
Для уточнения, я не интересуюсь учебниками, которые охватывают только следующее:
- Использование (c) Профиль для профилирования кода Python для измерения времени выполнения
- Использование инструментов для проверки профилей (рекомендую RunSnakeRun)
- Оптимизация путем выбора более подходящих алгоритмов или конструкций Python (например, наборов для тестов на членство вместо списков); в руководстве должно быть указано, что алгоритм и код Python уже оптимальны, и мы находимся в точке, где расширение C является следующим логическим шагом.
- Рекапиляция документации Python по написанию расширений C, которая уже отлично подходит как справочная, но не полезна как ресурс для показа, когда и как перейдите от Python к C.