[PDF] Сортировка страниц по их размерам

причем эти 84 секунды стабильно, что под виндой, что под убунтой :)
 
причем эти 84 секунды стабильно, что под виндой, что под убунтой :)
Ну фиготень же!
Ты точно на одном и том же файле сравниваешь?
Как твой запустить, чтобы он совсем не молчал, но и простыню не вываливал?
 
time ./pdfsizes sf -t all.pdf
[time] all 241x392.pdf = 9975 ms
[time] all 155x160.pdf = 10130 ms
[time] all 233x399.pdf = 10258 ms
[time] all 216x279.pdf = 10337 ms
[time] all 279x410.pdf = 9096 ms
[time] all 253x366.pdf = 9396 ms
[time] all 308x389.pdf = 9071 ms
[time] all 290x426.pdf = 9232 ms
[time] all 320x420.pdf = 9304 ms
[time] all 330x420.pdf = 9310 ms
[time] all 314x379.pdf = 9660 ms
[time] all 350x420.pdf = 9318 ms
[time] all 390x420.pdf = 9904 ms
[time] all 380x420.pdf = 10539 ms
[time] all 310x420.pdf = 25187 ms
[time] all 400x420.pdf = 8990 ms
[time] all 400x450.pdf = 8926 ms
[time] all 407x434.pdf = 9466 ms
[time] all 420x420.pdf = 11412 ms
[time] all A1 roll 914 mm.pdf = 9397 ms
[time] all 420x630.pdf = 12142 ms
[time] all A0x4 roll 1270 mm.pdf = 18382 ms
[time] all A3x4 roll 914 mm.pdf = 11985 ms
[time] all A4.pdf = 9776 ms
[time] all A2 roll 610 mm.pdf = 22515 ms
[time] all A3.pdf = 22044 ms
[time] split-formats total = 82710 ms

real 1m22.826s
user 4m48.099s
sys 0m14.124s

обрати внимание на split-formats total = 82710 ms и real 1m22.826s
Файл один, они у меня в одной папке лежат и юзают один и тот же all.pdf
 
да фиг знает.
time ./pdfsizes sf -p all.pdf
[progress] 1/26 done: all 155x160.pdf
[progress] 2/26 done: all 233x399.pdf
[progress] 3/26 done: all 241x392.pdf
[progress] 4/26 done: all 216x279.pdf
[progress] 5/26 done: all 253x366.pdf
[progress] 6/26 done: all 279x410.pdf
[progress] 7/26 done: all 290x426.pdf
[progress] 8/26 done: all 308x389.pdf
[progress] 9/26 done: all 320x420.pdf
[progress] 10/26 done: all 330x420.pdf
[progress] 11/26 done: all 314x379.pdf
[progress] 12/26 done: all 350x420.pdf
[progress] 13/26 done: all 390x420.pdf
[progress] 14/26 done: all 380x420.pdf
[progress] 15/26 done: all 310x420.pdf
[progress] 16/26 done: all 400x420.pdf
[progress] 17/26 done: all 400x450.pdf
[progress] 18/26 done: all 407x434.pdf
[progress] 19/26 done: all 420x420.pdf
[progress] 20/26 done: all A1 roll 914 mm.pdf
[progress] 21/26 done: all 420x630.pdf
[progress] 22/26 done: all A0x4 roll 1270 mm.pdf
[progress] 23/26 done: all A3x4 roll 914 mm.pdf
[progress] 24/26 done: all A4.pdf
[progress] 25/26 done: all A2 roll 610 mm.pdf
[progress] 26/26 done: all A3.pdf

real 1m24.107s
user 4m53.111s
sys 0m14.485s
 
кстати
Найдено 31 уникальных размеров страниц.
а у меня 26. Возможно, это как раз допуски.
UPD: а, ты вертикальные и ландшафтные форматы различаешь, а я считаю одним и тем же форматом разнйо ориентации
 
Последнее редактирование:
time ./sort_pages_linux all.pdf
Обработка файла: all.pdf
Чтение файла в память (может занять время и много RAM)...
Анализ страниц и получение размеров...
Найдено 1593 страниц. Группировка по размерам...
Найдено 31 уникальных размеров страниц.
Запуск 4 воркеров для параллельной обработки...
Запись файла отчета...
Обработка завершена для: all.pdf
Отчет создан: all_report.txt


real 1m51.684s
user 6m28.643s
sys 0m30.739s
Вот они все в одной папке лежат
1775922992357.png
 
А на 100к прям совсем всё плохо. Я не дождался. Греет всеми ядрами, ногам тепло, хорошо. :)
 
А, мое медленно.. Меня четаигложут смутные сомнения с этим твоим стотысячным файлом. Надо результирующий страницы бы посмотреть
 
Я с SSD на HDD перенёс файл. У тебя что, каждая страница по отдельности записывается?
Блоками, при возможности. Но какионо реализовано в библиотеке, я не разбирался
 
time ./pdfsizes sf -p 100k_pages.pdf
[progress] 1/7 done: 100k_pages A1 roll 914 mm.pdf
[progress] 2/7 done: 100k_pages A3.pdf
[progress] 3/7 done: 100k_pages A2 roll 610 mm.pdf
[progress] 4/7 done: 100k_pages A0 roll 914 mm.pdf
[progress] 5/7 done: 100k_pages A6.pdf
[progress] 6/7 done: 100k_pages A5.pdf
[progress] 7/7 done: 100k_pages A4.pdf

real 0m35.274s
user 1m36.921s
sys 0m11.988s
 
я не понимаю такой разницы в производительности, которую ты показываешь
time ./sort_pages_linux 100k_pages.pdf
Обработка файла: 100k_pages.pdf
Чтение файла в память (может занять время и много RAM)...
Анализ страниц и получение размеров...
Найдено 100000 страниц. Группировка по размерам...
Найдено 7 уникальных размеров страниц.
Запуск 4 воркеров для параллельной обработки...
Запись файла отчета...
Обработка завершена для: 100k_pages.pdf
Отчет создан: 100k_pages_report.txt

real 0m31.631s
user 1m42.115s
sys 0m8.611s
 
Кажись я догадался. С ключом -т твой кот довольно часто дёргает время из системы и очень может быть что ответ занимает существенное время.
 
не, ерунда
у меня же не получается такой разницы. Не может быть таких накладных расходов на systime
ну и вон там без -t, примерно то же и получается
запусти вообще без ключей
 
time ./pdfsizes sf 100k_pages.pdf

real 0m33.755s
user 1m31.361s
sys 0m9.878s

ну я могу понять флуктуации - в системе демоны, ввод-вывод, какие-то драйвера, прерывания, файлы с теми же именами, наконец, когда запускаешься по второму разу, их стереть нужно. но это копейки. То, что показываешь ты, меня приводит в шок и трепет
 
time ./pdfsizes sf PDFs/100k_pages.pdf
Это split-formats