На главную Работа с памятьюИзначально Photoshop появился на Macintosh, а там было плохо реализовано использование файла подкачки операционной системой. Поэтому в Photoshop используется собственная система распределения памяти (даже в Windows). Во время вызова filterSelectorPrepare плагин должен заключить соглашения по использованию памяти с Photoshop. Photoshop передает максимальное количество байт, которое он может освободить для плагина в полях maxData или maxSpace записи pluginParamBlock. Если изображение маленькое, или может обрабатываться по кускам, то плагин может увеличить скорость работы, уменьшив эти значения. В противном случае редактору придется переместить все изображение на диск и использовать файл для перемещения данных в памяти. Но обычно сам плагин быстрее работает с неболим количеством более крупных объемов памяти. Нужно поэкспериментировать и найти компромиссное решение. Первый метод – поделить maxData/maxSpace на 2 (половину памяти редактору и половину себе). Второй метод – установить значения в 0 и при необходимости использовать предоставляемые Photoshop пакеты буфера (buffer suite) или дескриптора (handle suite) для распределения памяти. С точки зрения редактора второй вариант является более эффективным, но требует написания дополнительного кода. Если плагин работает слишком медленно, то нужно провести несколько тестов с разными подходами. Если плагин собирается использовать большие блоки памяти, то нужно в поле bufferSpace установить суммарное количество требуемой памяти. Назад | Содержание | Вперед
© Ярослав Музыкантов muzykantov@mail.ru |