Обновить

Комментарии 10

Мне одному кажется, что если вам важны миллисекунды, то вы будете писать не на Питоне?

Надо же знать точку, когда пора переходить на Rust (С++).

Миллисекунды как раз python. Если переходить на с++, то на вычисления x5-x8 при отсутствии подходящих библиотек на python, но часто узкое место это БД и сеть.

Информация полезная, но повторяется по нескольку раз.

НЛО прилетело и опубликовало эту надпись здесь

Прям интересно стало узнать о диапазоне значений, которые принимают числа, размерами в десятки байт! Они такие большие или там просто много оверхеда поверх объектов, которые позволяют создавать эти значения. P. S. AI говорит, что для числа, например, Small int, структура которого имеет размер 28 байт полезные данные только 4 байта, т. е. это обычный int на 32 битной машине.

В питоновской логике все 28 байт у числа полезные, ведь это объект со своими свойствами.

Интересно, в какой момент складывать float стало быстрее, чем int. С момента перехода на Python разве что. На уровне операций без питоновских обёрток в том же C сравнение в другую сторону сильно.

Питон это инструмент оркестровки специализированных компонент. Любое иное его использование в продуктовой среде, это ошибка или вынужденное зло.

Примеры нормального использования:

  • DAG в Airflow

  • Cкрипт, 99% времени которого приходится на выполнение методов ML-библиотеки (scikit-learn, TensorFlow, PyTorch и др.)

  • Скрипт Spark application

  • Задачи перекладывания данных. Типа взять данные от одного компонента, изменить формат и отдать в другой к компонент. В таких задачах 99% времени тратиться на передачу по сети, работы с файлами или базой данных.

  • Разные утилитные скрипты для администрирования систем. Например, скрипты CI/CD.

  • Разовые скрипты обработки файлов. Ну там, убрать из csv особые символы, которые модуль импорта в БД не может обработать. Распарсить файл архива электронных писем и затем положить их в БД.

  • UDF функции, для расширения состава функций БД, где не хватает возможностей родного языка программирования БД.

От версии к версии Python затраты на операции могут значительно меняться. Тем более сильно может все измениться, если вы используете "ускорители" типа PyPy или Numba.
Поэтому главное, чтобы код выглядел хорошо (главное, понятно выглядело), без явно неоптимальных конструкций. Типа, где можно циклом или itertools посчитать, не надо рекурсию использовать.

Замеры на мак с процессором арм...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации