metatrop
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: 1.5.2 собирается с mt, правда тогда не запускается на XP: Точка входа в процедуру InitializeConditionVariable не найдена в библиотеке DLL KERNEL32.dll. | Запустить официальный 32-битный zstd.exe на XP/2003 не составляет труда. Делается это методом OneCoreAPI (см. версии WinRAR > 6.02 для NT5). Нужно положить файлы KERNELOC.dll, NTEXT.dll, PSAPI.dll рядом с zstd.exe в отдельной директории (для подобных программ). zstd.exe подвергнуть правке: repls.exe -wk -i "KERNEL32.DLL[0]" "KERNELOC.dll[0]" zstd.exe miniperl.exe -Sx textop.bat -it -pelaa:1 -pess:5.1 -pechk:1 zstd.exe Заодно устанавливается бит LargeAddressAware (что это не сделано при компиляции - большое упущение), дабы zstd.exe мог использовать до 3 ГБ памяти в режиме boot.ini /3GB в x32 ОС, и до почти 4 ГБ в любой x64 ОС. Для случая NT6 x32 (или x64) ОС замену строчки "KERNEL32.DLL" на "KERNELOC.dll" делать не следует (не будет запускаться!), только LargeAddressAware установить, да пересчитать контрольную сумму. Работает zstd -T2 --ultra -21 ... для очень большого файла, забирая до 2.4gb памяти. В три -T3 или четыре -T4 потока с уровнем компрессии -21 даже 3-4 ГБ памяти не будет хватать в случае больших файлов. С уровнем -20 можно в 4 потока на x32. Что интересно, качество упаковки в режиме -T2 не только не ухудшилось в сравнении с однопоточным, но архивы получились просто побайтово идентичные. | Всего записей: 335 | Зарегистр. 17-09-2010 | Отправлено: 09:03 12-02-2023 | Исправлено: metatrop, 09:18 12-02-2023 |
|