From 959d681afd653c6a02f28cd2523b42088b0c163b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 6 Jan 2019 00:26:52 +0300 Subject: [PATCH] =?utf8?q?PyDERASN=20=D0=B1=D1=8B=D1=81=D1=82=D1=80=D0=B5?= =?utf8?q?=D0=B9=D1=88=D0=B8=D0=B9!?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 такой быстрый и мало прожорливый. Хотя... там ещё точно можно дико улучшать производительность, но в ущерб читаемости и простоты кода. -- 2.48.1