[Закрываются] готовые к новичку учебные руководства Cython

Десятичное число и деньги должны быть довольно надежными. То, что я могу уверить Вас (от болезненного личного опыта из наследованных приложений) , НЕ ДЕЛАЮТ плавание использования!

21
задан spearfire 19 August 2013 в 13:03
поделиться

3 ответа

Выучить C! (Извините - непреодолимо.)

Если серьезно, похоже, что вам больше всего нужно знать о типах переменных C (типы C, если хотите), чтобы использовать cdef ] эффективно.

Позже, если вы все же решите укусить пулю и правильно выучите C, побалуйте себя копией Kernighan and Ritchie или K&R, доступной на Amazon .

9
ответ дан 29 November 2019 в 21:21
поделиться

cython хорош в двух разных вещах

  1. Взаимодействие с библиотеками языка C
  2. Ускорение кода Python

Вероятно, он получит больше экспозиция из 1. отсюда и упор на учебные материалы, которые вы нашли по материалам C. Похоже, вы хотите использовать его как 2.

Исходя из моего опыта работы с cython , вы можете просто попробовать скомпилировать свои программы на Python и посмотреть, работает ли это. Будет немного быстрее (возможно). Чтобы работать намного быстрее, вам нужно выборочно преобразовать типы Python в типы C. Это начинает раскрывать мощь cython.

Если вы посмотрите официальное руководство , вам нужно изучить, где они использовали ключевое слово cdef .

18
ответ дан 29 November 2019 в 21:21
поделиться

Обо всем C, что вам действительно нужно знать:

  1. Типы C намного быстрее, чем типы Python (добавление в C целых или двойных чисел может быть выполнено за один такт), но менее безопасны (они не являются произвольными размер и может бесшумно переливаться).
  2. Вызовы функций C ( cdef ) намного быстрее, чем вызовы функций Python ( def ) (но менее гибки).

Это поможет вам добраться до цели. Если вы хотите получить последние 10-20% ускорения для большинства приложений, вам не обойтись без знания C и того, как работают современные процессы (указатели, кеш, ...).

0
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: