Чтобы объяснить мой вопрос, я сначала предоставлю некоторый код и объясню, что он делает:
% 1 1 65532{}for % cut off on mac with font set
% 1 1 99996{}for % cut off on mac without font set
% 1 1 300048{}for % cut off on linux with font set
% 1 1 300368{}for % cut off on linux without font set
% /Times-Roman findfont 10 scalefont setfont
showpage
Когда я комментирую строки 1 и 6 и запускаю эту программу postscript на моем Mac, я получаю переполнение стекаоднако я не получаю переполнение стека, если я заменю 65532 на любое меньшее целое число.Если вместо этого я отменяю комментарий в строке 2, то снова получаю переполнение стека, но я не заменю 99996 каким-либо меньшим целым числом.строки 3 и 4 аналогичны, за исключением linux.
Из этого я сделал следующий вывод: стек постскриптов Mac имеет длину 99998 (3 числа перед циклом for и 99996 чисел, созданных циклом for, дают 99999 чисел, ноэто слишком много, поэтому длина стека должна составлять 99998).Точно так же я пришел к выводу, что длина стека Linux составляет 300370.Дайте мне знать, если какие-либо из этих рассуждений неверны.Кроме того, чем они отличаются?
Далее я пришел к выводу, что установка шрифта занимает 34464 элемента в стеке на Mac, но только 320 элементов на Linux.Опять же, дайте мне знать, если что-то из этого кажется неправильным.
Во-первых, мне кажется странным, что установка шрифта должна занимать столько места вообще, во-вторых, почему они так сильно отличаются в Mac и Linux (более 100 раз больше места на Mac)?
Наконец, я хотел бы знать, есть ли какие-либо другие операции в postscript, которые занимают большой объем пространства в стеке, кроме операций, определенных программистом.Я бы посчитал, что в стеке больше 100 предметов.
Спасибо