Email or username:

Password:

Forgot your password?
di :python: :nyarch:

Про скорость в #python

Делал задачу по перелопачиванию больших матриц (больше 2гб) за целевое время меньше секунды на среднем железе и мы попробовали несколько инструментов: у pandas был результат около минуты, numpy - 10 сек, numba + numpy - меньше секунды. Правда, чтобы добиться целевого результата пришлось переписать половину алгоритмов numpy.

16 comments
di :python: :nyarch:

И так везде, главное выбрать правильную библиотеку под задачу, например, популярный bs4 можно заменить на lxml (которая написана на си) и парсер будет работать почти в 10 раз быстрее.

kurator88

@di jpython не будет быстрее за счет оптимизаций jvm ?

Ну за секунду точно не успело бы, если только прогреть jvm.

numpy это биндинг на c библиотеки ? кажется что это быстро слишком для интерпретируемого языка

di :python: :nyarch:

@kurator88 сторонние интерпретаторы не всё поддерживают, а в этом случае, ещё играла роль простота установки для конечных пользователей.

numpy - либа на си и на фортране для работы с массивами
pandas - обёртка над numpy для работы с дата сетами, mostly on python
numba - JIT компилятор хорошо работающий с цифрами и циклами (многопоточность итп), поддерживает почти все функции numpy, и если правильно помню, написан на си

Stas

@di пожалуй в закладки)

⚛️Revertron

@di Лучше бы сразу написали на Расте :)

di :python: :nyarch:

@Revertron раст мне нравится, но в этом случае, ну его нах

Мантисса :CrabVerified:

@di но bs4 же может использовать lxml, если явно указать

di :python: :nyarch:

@cybertailor ага, но из-за питоновских абстракций код медленнее. gist.github.com/dmitriiweb/9ee

Stas

@di
>пришлось переписать половину алгоритмов numpy

в смысле переписать? На С?

di :python: :nyarch:

@vsv numba поддерживает не все функции из numpy, поэтому приходилось писать свой алгоритм на питоне и оборачивать его в numba. По производительности, кстати, получилось не сильно медленее, чем если бы использовали numpy.

di :python: :nyarch:

@vsv например, какой-нибудь sort поддерживается, а sortna уже нет :(

Stas

@di теперь понятно.
сначала подумал, что ты залез под капот numpy и переписал там что-то)

gram

@di

Интересно было бы с pola.rs сравнить. Должно быть гораздо быстрее чем pandas.

di :python: :nyarch:

@orsinium думаю, что будет быстрее pandas, вопрос только на сколько? И будет медленнее, чем numba + numpy.

di :python: :nyarch:

@orsinium блин, очепятался, конечно же будет быстрее pola.rs, а не pandas.

Go Up