Перейти к содержимому
pdftools.kz
Популярное

Арифметика времени: почему пачка идёт медленно

Считает ваше устройство, а не сервер, и считает последовательно: одна страница за раз, один файл за раз. Поэтому время растёт по числу страниц, а не по числу файлов — десять пятистраничных документов обходятся примерно как один пятидесятистраничный. Подбор под точный размер множит эту работу на число проходов: до семи полных перерисовок PDF и до двадцати одного кодирования картинки. Параллельности нет ни на одном шаге.

Локально в браузередо 1 ГБбез регистрации

Коротко о цифрах

Где идёт расчёт
в браузере у 19 инструментов из 34
Параллельность
отсутствует, страницы обрабатываются по очереди
Проходов при подборе размера PDF
до 7
Кодирований при подборе размера картинки
до 21 — три круга по семь
Память на страницу A4 при 300 DPI
около 33 МБ
Потолок стороны канваса
4096 пикселей

Из чего складывается время

  • Разбор документа — один раз на файл, дешёвый шаг.
  • Отрисовка страницы в пиксели — главный расход, и он повторяется для каждой страницы.
  • Кодирование в JPEG или PNG — тем дороже, чем больше пикселей получилось.
  • Сборка нового PDF и сохранение — один раз на файл.
  • Скачивание — мгновенно, файл к этому моменту уже лежит в памяти вкладки.

Почему проходов бывает семь

Когда вы задаёте не качество, а точный размер, инструмент не может угадать нужную настройку — он её ищет. Сначала проверяется максимум шкалы: вдруг документ и так укладывается. Потом минимум: вдруг цель недостижима в принципе. Если цель лежит между границами, идёт бисекция, и всего разрешено до семи полных перерисовок документа.

У картинок счёт другой, но принцип тот же: бисекция качества в диапазоне от 25 до 95 занимает семь кодирований, а если потолок всё равно не взят, добавляются два круга с уменьшенной стороной — до 0,7 и до 0,5 от исходной. В худшем случае получается двадцать один проход кодирования по одному снимку.

Сколько это занимает памяти

  • A4 при 300 DPI — это 2480 × 3508 пикселей, около 8,7 мегапикселя.
  • В памяти такая страница занимает примерно 33 МБ, и так по очереди на каждую страницу.
  • Канвас освобождается сразу после шага, иначе десяток страниц подряд выбирает весь бюджет вкладки.
  • iOS Safari закрывает вкладку примерно на гигабайте, поэтому там пачку лучше дробить заранее.
  • Сторона канваса ограничена 4096 пикселями: A3 при 300 DPI не влезает и зажимается примерно до 248 DPI.

Что реально ускорит

  • Фиксированное качество вместо точного размера — один проход вместо семи.
  • Меньше DPI при переводе в картинки: 150 вместо 300 даёт вчетверо меньше пикселей.
  • Компьютер вместо телефона: больше памяти и быстрее одно ядро.
  • Дробление пачки на части и закрытые тяжёлые вкладки рядом.
  • Не сжимать то, что уже сжато: если результат окажется больше исходника, вам вернут исходник, но время уже потрачено.

Частые вопросы

Можно ли ускорить обработку, открыв несколько вкладок?

Нет, станет только хуже. Вкладки делят память и процессор одного устройства, а каждая копия инструмента держит свои страницы в памяти. Последовательная работа в одной вкладке заканчивается раньше.

Почему индикатор подолгу стоит на одном месте?

Прогресс обновляется по завершении страницы, а не непрерывно. На тяжёлой странице со сканом шаг занимает секунды, и полоса выглядит замершей, хотя работа идёт нормально.

Быстрее ли будет на сервере?

Не обязательно. Серверные инструменты выполняют не больше двух конверсий одновременно и отказывают, когда очередь длиннее пяти, поэтому в час пик ожидание съедает выигрыш в скорости самой машины.

Зависит ли время от веса файла?

Слабее, чем кажется. Считаются страницы и пиксели: документ на пять мегабайт из пятидесяти текстовых страниц обрабатывается дольше, чем скан на двадцать мегабайт из трёх страниц.

Рядом

Частые задачи с этим инструментом