Раскомментируй TC1 := TC2; в строке 532.
Они там просто слишком много намутили - при кодировании в Base64 через каждые выходные 64 символа добавляется перевод строки (для преобразования 100 Мб строки минимально необходимо 139810136 байт, а API предлагает выделить 144179205). При декодировании наверное проверяется и пропускается наличие таких пробельных символов. Ещё непонятно как реализовано предварительное вычисление требуемой длины результата (первый вызов CryptBinaryToString/CryptStringToBinary) - может и там замедление есть (может быть полный перебор Base64 строки для подсчета без пробельных символов).
Ответов: 4631
Рейтинг: 749
|
|||
карма: 26 |
|
Редактировалось 3 раз(а), последний 2018-07-16 10:57:15