Раздел Статьи

Способы оптимизации фигур в Visio.




При работе с большими схемами, особенно при использовании большого количества составных объектов, иногда начинается замедление в работе приложения и быстрого увеличения размера файла. Конечно, это не критично, при наличии большого объема жесткого диска, но что делать, если файл надо переслать по почте и вообще, только так и работаете. Тут лишний мегабайт не нужен. И работать с таким приложением становится не комфортно.
Visio - объекты, это чаще всего, векторные объекты, каждый из которых носит с собой чемодан со своими настройками. И если взять отдельную группу, то багаж у этой группы будет не маленький. Так может в некоторых случаях будет лучше заменить эту группу одним векторный метафайлом? Но ведь тогда он будет лишен возможностей по редактированию и функциональности. Некоторые фигуры, расположенные на чертеже, вообще не подвергаются редактированию, но если “разобрать” эти фигуры на составляющие, то можно заметить много перекрытий и невидимых областей, а Visio, в силу своей специфики, все равно обрисовывает и обрабатывает все эти невидимые области, затрачивая машинное время. Конечно, можно всегда сказать, что на быстрых машинах этого не происходит, но это не так.
В отличие от других приложений (AutoCAD, CorelDraw), Visio критичен к количеству начерченных фигур и при их значительном увеличении, начинает “притормаживать” и это происходит не на 100 000 объектах, а гораздо раньше.
Рассмотрим пример.
    Создадим несколько файлов содержащих 1 600 объектов:
  1. Файл с объектом, состоящим из Visio-группы без использования мастера. Т.е. просто 1 600 простых фигур (в качестве простой фигуры выступает квадрат с градиентной заливкой, размерами 10х10 мм).
  2. Файл с объектом, состоящим из Visio-группы при использования мастера. Т.е. 1 локальный мастер и 1 600 связанным с ним фигур.
  3. Файл с объектом, взятый из первого пункта и вставленный как метафайл. Т.е. 1 600 отдельных метафайлов.
  4. Файл с объектом, взятый из первого пункта и вставленный как метафайл и использованный в качестве мастера. Т.е. 1 локальный мастер и 1 600 его метафайлов.
Далее производятся все действия с увеличением фигур в Visio-группе и записывались изменения размера файла. Также замерялось время открытия файла. Замер производился после 3-го запуска файла, чтобы он был в памяти.

Таблица 1

Как видно из графика, при возрастании объектов в группе, размер файла с Visio-объектами начинает быстро возрастать, в то время как размер с метафайлами практически не изменился (рассматривая файлы с мастерами). Это связано с тем, что при преобразовании фигуры в метафайл, у него “отрезаются” перекрывающиеся области. И поэтому его размер практически не зависит от содержания. А в Visio-группе возникают перекрытия областей.
Если рассматривать файлы без использования мастера, то использование большого количества метафайлов только увеличит размер конечного файла.
Теперь рассмотрим влияние использования метафайлов на работу приложения.

Таблица 2

При малых количествах объектов, как Visio, так и метафайлов, производительность не изменяется. Только при работе с более 16 000 объектов становится очевидным разрыв.
Разработчики, для ускорения работы приложения, часто в трафаретах тоже используют метафайлы. Почти все фигуры в Network Device, Internet Symbols, Telecom – это трафареты с векторными фигурами. Но иногда они просто покупают их в таком виде.
Также не забывайте удалять ненужные мастера из локального трафарета. Если мастер имеет связные фигуры на чертеже, то при его удалении появится предупреждение. Если нет, то это значит, что у мастера не было связных фигур, и он не использовался и, следовательно, увеличивал размер файла.
Использование векторных метафайлов не панацея, только в некоторых случаях это может принести ощутимую пользу. Иногда замедление в работе приложения может быть связано с использованием не Visio трафаретов. Ведь можно использовать разные источники, для получения векторных фигур: векторные ClipArt’s (коллекции векторных картинок), из pdf-документов, путем предварительного преобразования, из fla-коллекций. И почти всегда в них слишком много точек или объектов. В таком виде они обычно не используются. Их надо разгруппировать, этим преобразовав в Visio объекты, “почистить”, удалить лишние объекты, сгруппировать или преобразовать в метафайл. Иногда, таким образом, можно увеличить скорость обработки таких объектов на порядок.

Советы по работе с программой.