Вверх ↑
Ответов: 4589
Рейтинг: 737
#1: 2018-06-29 12:10:10 ЛС | профиль | цитата
Раскомментируй TC1 := TC2; в строке 532.

Они там просто слишком много намутили - при кодировании в Base64 через каждые выходные 64 символа добавляется перевод строки (для преобразования 100 Мб строки минимально необходимо 139810136 байт, а API предлагает выделить 144179205). При декодировании наверное проверяется и пропускается наличие таких пробельных символов. Ещё непонятно как реализовано предварительное вычисление требуемой длины результата (первый вызов CryptBinaryToString/CryptStringToBinary) - может и там замедление есть (может быть полный перебор Base64 строки для подсчета без пробельных символов).
карма: 26

0
Редактировалось 3 раз(а), последний 2018-07-16 10:57:15