На главную
Назад | Содержание | Вперед

Работа с памятью

Изначально Photoshop появился на Macintosh, а там было плохо реализовано использование файла подкачки операционной системой. Поэтому в Photoshop используется собственная система распределения памяти (даже в Windows).

Во время вызова filterSelectorPrepare плагин должен заключить соглашения по использованию памяти с Photoshop.

Photoshop передает максимальное количество байт, которое он может освободить для плагина в полях maxData или maxSpace записи pluginParamBlock. Если изображение маленькое, или может обрабатываться по кускам, то плагин может увеличить скорость работы, уменьшив эти значения. В противном случае редактору придется переместить все изображение на диск и использовать файл для перемещения данных в памяти. Но обычно сам плагин быстрее работает с неболим количеством более крупных объемов памяти. Нужно поэкспериментировать и найти компромиссное решение.

Первый метод – поделить maxData/maxSpace на 2 (половину памяти редактору и половину себе). Второй метод – установить значения в 0 и при необходимости использовать предоставляемые Photoshop пакеты буфера (buffer suite) или дескриптора (handle suite) для распределения памяти. С точки зрения редактора второй вариант является более эффективным, но требует написания дополнительного кода. Если плагин работает слишком медленно, то нужно провести несколько тестов с разными подходами.

Если плагин собирается использовать большие блоки памяти, то нужно в поле bufferSpace установить суммарное количество требуемой памяти.

Назад | Содержание | Вперед


© Ярослав Музыкантов muzykantov@mail.ru
При использовании материалов обязательна ссылка на сайт
students.pm.vogu35.ru/pages/pm03/mya