Карточка Junior Память и производительность обновлено

Почему Python медленнее C

Вопрос

Почему чистый Python медленнее C на вычислениях?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Интерпретация байткода, динамическая типизация (проверка типов на каждой операции), все значения это объекты в куче со счётчиками ссылок, GIL мешает использовать ядра в потоках.

Ответ

Интерпретация байткода, динамическая типизация (проверка типов на каждой операции), все значения это объекты в куче со счётчиками ссылок, GIL мешает использовать ядра в потоках.

Разбор

Поэтому тяжёлые вычисления делают через библиотеки на C (numpy), а Python оставляют для склейки логики. CPython 3.11+ заметно ускорился за счёт специализирующего интерпретатора.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.