- Сообщения
- 2 482
- Реакции
- 666
Попробуй запускать cpdf не отдельными вызовами/запусками, а через AND, так оно еще быстрее должно стать
Попробуй запускать cpdf не отдельными вызовами/запусками, а через AND, так оно еще быстрее должно стать
С новой версией и 100к страниц, после ~ 15 минут не дождался, убил. Видимо, не дошло до стадии 4-х рабочих, да и одно ядро даже не грузит. Не исключено, идиосинкразия ваших библиотек к PDF от GS. Хотите, разбирайтесьВ ресурсах старая версия, брать нужно было вот отсюда же [PDF] - Сортировка страниц по их размерам
Про "не дождался" это странно. 5,27 сек - это внушает

%PS
% gswin64c -q -sDEVICE=pdfwrite -o pages.pdf this_file.ps
/P [
[298 420] [420 595] [595 842]
[842 1191] [1191 1684] [1684 2384]
[2384 3370]
] def
/L P length def
/Times findfont
72 scalefont setfont
1 1 100000 {
<< /PageSize P rand L mod get >> setpagedevice
72 72 moveto
6 string cvs show
showpage
} for
а, ну так и есть, перестроил плоский массив (который GS делает) из 100к страниц в "дерево" с "не более 10 ветвей/листьев на ветку" (тогда и Adobe Reader поживее листает этот файл), и все исправилось:идиосинкразия ваших библиотек к PDF от GS.
Zollinger
pdfsizes.exe
12.3801609
(хотя, кстати (или нет) на выходе в файлах опять ~ по 14к в каждом плоские массивы вместо деревьев. Не откроет свой же собственный файл повторно, если будет в каком-нибудь e.g. 99k)cpdf -create-pdf -create-pdf-pages 100000 -o junk.pdf
pdfsizes.exe sr junk.pdf
pdfsizes.exe sr "junk pages 0001-100000 A4 (100000 pg.).pdf"
^C
Глянул в обед, да, там как раз из-за плоской структуры получается замедление, именно из-за неудачного перебора, она до разделения и не доходит. Вечером попробую придумать что-нибудьНе-не, интереснее сюжет, когда родитель не может справиться со своим же трудным дитём, что приводит к их неминуемой погибели, в назидание всем. Деревья, конечно, анахронизм эпохи, когда объем памяти измерялся в мегабайтах. Видимо что-то O(2**N) у вас.
Код:cpdf -create-pdf -create-pdf-pages 100000 -o junk.pdf pdfsizes.exe sr junk.pdf pdfsizes.exe sr "junk pages 0001-100000 A4 (100000 pg.).pdf" ^C