Comments 14
тот случай когда "простота" языка оборачивается очень нетривиальными практиками чтобы получить нормально работающую программу.
но ведь здесь речь про оптимизацию(ныне бесполезную). Что с этими практиками, что без - программа будет работать
Python не для таких вычислений был создан. Если приходится думать о таких оптимизациях, то явно стоит подумать и о переписывании всего кода/этой конкретной части на что-то побыстрее.
Либо заюзать numpy
Можно ещё на мульти процессинг посмотреть, если вычисления паралелятся и возвращаемое значение не большое.
Необязательно, если это чистый питон то можно просто в pypy исполнять
это все равно медленнее будет
pypy или перевести в эфиктивные структуры данных (numpy, polars) это тоже варианты. Внешние буиблиотеки не ограниченны GIL и могут использовать паралелизацию.
> Before we dive into the details, it is important to emphasize that Polars has been built from the start to use all your CPU cores. It does this by executing computations which can be done in parallel in separate threads.
Разные методы можно использовать вместе, а результат сильно зависит от типа задачи.
Странное ощущение, когда видишь незнакомый хак, а он уже и не работает.
Может, если код на питоне приходится так оптимизировать – он изначально не должен был быть написан на питоне?
Я так понимаю, питон при нормальном использовании – это "клей", собирающий низкоуровневые куски воедино. Характерный пример – упомянутый в комментах numpy. Клея не должно быть много.
Трюк, который раньше ускорял Python, теперь лишь захламляет код