Почему рендеринг PostScript намного медленнее, чем рендеринг PDF?
Я всегда думал, что файлы PDF и PostScript очень похожи, хотя PostScript - полный язык Тьюринга.
Есть ли причина, почему PostScript намного медленнее при рендеринге (пробовал с evince на Ubuntu), чем PDF, или читатель просто менее оптимизирован?
4 ответа
У меня нет способа проверить, правильно ли мое предположение - но здесь все равно идет речь:
Я подозреваю что evince
не может напрямую отображать и отображать PostScript на экране. Может быть, это можно сделать только для PDF. Поэтому он может использовать хитрость для файлов PostScript: за вашей спиной он преобразует их во временный файл PDF и отображает его вместо этого.
Попробуйте установить (очень старомодно) gv
Программа просмотра PostScript в Ubuntu:
sudo apt-get install gv
а потом
gv /path/to/PostScript.ps
и посмотрим, будет ли это быстрее. (gv
также использует PostScript для рендеринга, но не конвертирует в PDF.) Или вы используете Ghostscript напрямую
gs /path/to/PostScript.ps
Но не забывайте об одном: именно потому, что PostScript является языком программирования, вы можете создавать файлы PostScript, которые являются довольно короткими в байтах, но заставляют интерпретатор проходить цикл с тысячами итераций (например, для вычисления + рендеринга фрактала) прежде чем он отображает содержимое файла на экране.
У PDF нет "циклов" и подобных вычислений...
Это зависит от кода PostScript. Можно написать алгоритм 3D-рендеринга в PostScript и использовать встроенные файлы AutoCAD в качестве изображений. Рендеринг займет много времени, в то время как PDF будет содержать предварительно растеризованные изображения. В некоторых случаях PostScript будет отображаться намного быстрее. К сожалению, большинство популярных издательских программ выдают очень неэффективный код PostScript. Но конвертеры PS->PDF способны оптимизировать их вывод для быстрого рендеринга.
Но самое главное, PDF работает постранично: каждая страница в основном является автономной сущностью, поэтому вы можете перейти к любой странице, и читатель может сразу же начать визуализацию этой страницы.
Документ PostScript, напротив, представляет собой одну большую программу, а это означает, что программа просмотра PS должна выполнить ее до нужной страницы, прежде чем сможет отобразить ее правильно.
Кроме того, PDF-файлы содержат объекты для визуализации, в то время как PostScript является языком программирования, который инструктирует средство визуализации рисовать такие объекты, поэтому PDF в некотором смысле предварительно переваривается по сравнению с PS и, следовательно, быстрее интерпретируется.
PostScript - это язык программирования.
PDF - это формат документа.
Поскольку PostScript является языком программирования, все содержимое документа должно вычисляться шаг за шагом. Хотя PDF поддерживает ограниченное подмножество PostScript для векторной графики, он разработан специально как формат документа и не требует такого рода вычислений.