В наборе тестов USENIX приложения на CPython оказались в среднем в 29,5 раза медленнее тех же программ на C++. При этом Python держит первое место в рейтинге TIOBE, опережая C, C++ и Java, и остаётся основным инструментом машинного обучения. Парадокс на первый взгляд серьёзный: язык, который проигрывает конкурентам по скорости, возглавил сферу, где всё упирается в вычисления.
Разгадка проста, пишет Хабр: тяжёлую математику Python делает не сам. Один вызов на Python способен запустить перемножение матриц из миллионов элементов, а вся нагрузка при этом ложится на скомпилированное ядро на C++ или CUDA. В такой работе программа большую часть времени проводит за пределами самого Python.
Иными словами, медленный интерфейс управляет быстрым движком. Python удобен для описания логики, а скорость обеспечивают библиотеки, написанные на компилируемых языках. Поэтому место в рейтинге TIOBE и позиции в машинном обучении не противоречат результатам USENIX — они просто измеряют разные вещи.
Источник: Telegram: Хабр





Комментарии
Пока нет комментариев — будьте первым.