EugeneRoshal
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору insorg Цитата: На перспективу лучше это иметь настраиваемым. | Я думал про опцию "[ ] Warn when opening an archive with file number exceeding: ___" в Settings/Security. Название, правда, длинное. Но я хотел уточнить, что речь именно об открытии, а не распаковке. lelik007 Цитата: А ну как кто случайно долезет. | Заметного ущерба не будет. Цитата: А смысл тогда этого ограничения? | В отличие от распаковки большинства архивных форматов, при просмотре содержимого архива WinRAR держит список всех файлов в памяти. Поэтому на архивах с большим количеством файлов расход памяти тоже может быть значительным. Но со времен добавления этого ограничения средние объемы оперативной памяти на пользовательских компьютерах выросли. w341kj Цитата: Интересно было бы узнать за счёт каких изменений. | Отказ от SHA-256 для ключей. Чтение ZIP central directory большими блоками. Ускоренный подсчет размеров папок сразу для всех соседних файлов с одинаковым путем. Отказ от обработки DOS времени файла, если для него же есть время в другом формате. Требуемая для обработки DOS времени TzSpecificLocalTimeToSystemTime на 5 миллионах отнимала порядка 0.7 секунды. Отказ от вызова CharLower для ключей, если мы видим, что ключ уже в английском нижнем регистре. CharLower тоже отнимала сколько-то десятых. И тому подобное. На обычных архивах до сотен тысяч файлов это все было не слишком заметно, поэтому у меня не было задачи оптимизировать данный код по максимуму. Оптимизированный код зачастую становится объемнее, и его тяжелее читать. Поэтому заниматься оптимизацией без реальной потребности тоже не всегда полезно. Но раз в ходу появились ZIP на много миллионов файлов, пришлось заняться этой частью кода. Pasha_ZZZ Цитата: Как раз спроста. Так, примерно, можно сказать от балды. Да и с момента выбора ресурсы компов нехило так аыросли | Всё так. Benchmark Цитата: Ограничение появилось в WinRAR 4.0 beta 1, т.е. примерно 15 лет назад. В те времена оно, наверно, имело определённый смысл, сейчас уже вряд ли. | Вот я пока и не решил. Оставить жестко заданное значение, но увеличить его. Сделать опцию, которой мало кто будет пользоваться. Убрать этот запрос совсем. |