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

~RA~

🄯
Топикстартер
15 лет на форуме
Сообщения
14 094
Реакции
4 346

Вложения

Последнее редактирование модератором:
Решил повторять Женин подход?
Если ты про спереть чью-то идею повторить чьё-то решение, то да. Я так и написал.
 
Последнее редактирование модератором:
Код:
time ./sort_pages_linux 100k_pages.pdf
Обработка файла: 100k_pages.pdf
Обработка завершена для: 100k_pages.pdf
Отчет создан: 100k_pages_report.txt

real    0m11.859s
user    0m37.790s
sys    0m2.213s
100 000 страничный файл разобрал за 12 секунд.
Акробат бы, наверное, помер.
Тестовый файл и результат работы во вложении.
 

Вложения

заодно и свою гошную версию проверю, а то лежит, не пользуюсь :)
Пока вижу, что акробату на 28600 стало невесело :)
но у меня тут всего назапущено на 8 гб
 
потом рывком прыгнуло до 56ххх . Интересно он работает. Но по любому не 12 секунд :)
1775900358527.png

1775900392418.png

но это он еще только размеры собирает
 
Последнее редактирование:
Гошную свою запустил, параллельно с акробатом, правда, нужно без нее попробовать, акробат много отьедает
1775900636882.png
 
  • Спасибо
Реакции: ~RA~
Работает еще. Какими-то рывками, впрочем, я давно замечал. И файлы закрывает асинхронно как-то
1775901728112.png

1775901667381.png
 
Отработал акробат. Не повис. Молодец. Почти полчаса
1775901839884.png
 
  • Спасибо
Реакции: ~RA~
pdfcpu
гошная в одиночку отработала за 28 сек
1775902008053.png
 
  • Спасибо
Реакции: ~RA~
видимо, есть ресурс для ускорения. С другой стороны, неизвестно, что у тебя за комп. Было б ядер больше, горутин можно было бы и побольше запустить
1775902215717.png
 
попробую. кстати, можно у себя под убунтой запустить, она под wsl правда...
 
Код:
cargo install ntime
Потом как я запускал, только ntime вместо time.
 
она интересно работает под виндой (или везде?) за 15-20 мс возвращает управление в систему, а сам потом на фоне генерит файлы. чет пока у меня не получается замерить время
 
1775904495356.png

вот так намерялось.
измерялось вот так:
Код:
$sw = [System.Diagnostics.Stopwatch]::StartNew()
$p = Start-Process .\sort_pages_windows.exe -ArgumentList "100k_pages.pdf" -PassThru
$p.WaitForExit()
$sw.Stop()
$sw.Elapsed.TotalSeconds
pause
То есть те же 28 секунд, что и у меня
 
Собери линамд64, я протестирую.
 
Вот для моей, измеренной тем же способом
1775904838803.png