From: Sergey Matveev Date: Mon, 17 Feb 2020 17:51:02 +0000 (+0300) Subject: Зарелизил PyDERASN 7.2 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=897b4bf117836cc37b5b7bc3ce4fd5f48f80ec94;p=stargrave-blog.git Зарелизил PyDERASN 7.2 https://lists.cypherpunks.ru/pipermail/pyderasn-devel/2020-February/000040.html На самом деле ещё вчера я полностью реализовал двухпроходное кодирование DER: проходим по всем объектам в детерминированном порядке, высчитываем кто сколько будет занимать места, запоминаем (кому надо) какую длину надо будет закодировать, затем бежим уже второй раз, на лету сразу записывая в некий writer все получающиеся закодированные значения. Изменений в коде -- минимум. Но производительность существенно упала, а я надеялся, что за счёт меньших пертурбаций с памятью, будет лучше. В итоге забросил идею. А потом осенило: это ж позволит потокового (почти, с сохранением state от первого прохода) записывать данные, а применяя mmap-ы и итераторы, позволит формировать сколько угодно огромные DER-ы. Сегодня сделал двухпроходное кодирование как альтернативу обычному, всё работает, легко сделать многогигабайтный DER без проблем или с миллионами элементов, в Python-е почти не отжирая память. ---