[О блоге] [наверх] [пред] [2019-01-06 00:26:52+03:00] [959d681afd653c6a02f28cd2523b42088b0c163b]

PyDERASN быстрейший!

http://pyderasn.cypherpunks.ru/features.html
Решил я померить насколько PyDERASN мой стал медленнее и насколько
другие библиотеки стали быстрее, а то замеры скорости я делал на 1.0, а
сейчас 4.9, а pyasn1 был версии 0.2.3, а сейчас 0.4.5. Плюс решил
померится с asn1crypto библиотекой, которая вся из себя постоянно
заявляется в описании что она быстра.

Оказалось что PyDERASN всё же побыстрее asn1crypto на парсинге
CACert.org CRL-а, но при этом памяти ест на Python 3.5 почти в два раза
меньше. А вот на Python 2 она существенно быстрее, а памяти жрёт чуть ли
не в 3.5 раза меньше. pyasn1 в сильном отрыве и по памяти и особенно по
скорости работы.

Код asn1crypto детально не смотрел, но они пишут о том что делают lazy
обращения и парсинг полей. И вот если просто так взять и сделать
.load(), то да, они очень быстро отрабатывают. Однако, насколько
понимаю, парся только самые поверхностные слои! Я поэтому при
тестировании делают .native, при котором заставляю парсить всё, но при
этом он возвращает действительно родные Python объекты. Тогда как
PyDERASN умудряется и отпарсить и в высокоуровневых объектах всё
вернуть.

В общем я доволен своим изделием. Видимо, наследие ivi во мне остаётся и
поэтому PyDERASN такой быстрый и мало прожорливый. Хотя... там ещё точно
можно дико улучшать производительность, но в ущерб читаемости и простоты
кода.

    [оставить комментарий]