All Forums
 Категория Visio
 Форум Вопросы и ответы
 Проблема с автоматизацией
Author Previous Topic Topic Next Topic  

hermit

2 Posts

Posted - 03/17/2003 :  15:05:49
Есть следующая проблема. С помощью автоматизации рисую диаграммы в Визио - куча шейпов и ненормальная куча коннекторов между ними. Диаграмма создается жутко медленно, просто никак. В конце работы отрисовка коннектора занимает секунд 10, что уж совсем не в какие ворота не лезет.
Что можно сделать для ускорения работы? В частности как ускорить вставку коннектора? Может его как нить упростить? Куда рыть?

Tumanov

Russia
1198 Posts

Posted - 03/17/2003 :  16:48:13
Попробовал проверить это безобразие на поставляемых программах.
Отсканировал и нарисовал Веб-сайт. Данные следующие:
Приблизительно 80 сек длилось сканирование. В это время на рисунке появился только 1 шейп главной страницы. То есть шел набор информации в массивы.
Потом примерно 20 сек строился сам рисунок. На рисунке 340 шейпов. Изображения довольно простые. Связи простейшие - в основном по одной на шейп.
То есть скорость построения рисунка - примерно десяток шейпов в секунду. Можно предположить, что данное приложение оптимизировано по скорости, то есть выжали все, что могли (хотя и не обязательно).
Вам же, судя по этому ориентиру, еще есть куда оптимизировать.
Пути можно предположить следующие:
- упрощение изображения шейпов (либо красота, либо скорость);
- оптимизация алгоритмов (если скорость к концу замедляется, значит она зависит от размера коллекций, возможно неоптимальны какие-то поиски, переборы);
- способ размещение программной части. Например просмотр приложения Visio из внешнего экзешника работает довольно медленно.
В общем искать надо. А цифры для ориентира я Вам привел.
Go to Top of Page

hermit

2 Posts

Posted - 03/18/2003 :  09:42:17
quote:
Originally posted by Tumanov


- упрощение изображения шейпов (либо красота, либо скорость);
- оптимизация алгоритмов (если скорость к концу замедляется, значит она зависит от размера коллекций, возможно неоптимальны какие-то поиски, переборы);
- способ размещение программной части. Например просмотр приложения Visio из внешнего экзешника работает довольно медленно.


Спасибо большое за грамотный своевременный ответ.
Несколько уточняющих комментариев и вопросов.
1. Насколько я могу судить, скорость у концу замедляется прежде всего из-за того, что коннектор долго рассчитыват свое положение относительно соседей-коннекторов. Соседей же просто оченьмного. Можно ли заставить коннектор не рассчитываться а просто упасть, как есть?
2. Насчет внешнего экзешника - мне казалось, что откомпилированный код должен побыстрее выполнятся? Или по крайней мере также. Если нет, то, что использовать? VBA?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/18/2003 :  11:47:29
1. В плане оглупления коннекторов, даже не знаю. Может еще кто подскажет...
2. А насчет экзешника ситуация следующая. Сам он действительно работает быстро. А вот когда ему приходится часто обращаться к Visio (другому приложению), тут-то времени уходит пропасть. То есть переключений должно быть как можно меньше. Если основная работа идет с рисунком, с коллекциями, то я бы выбрал VBA.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)