Author |
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 из внешнего экзешника работает довольно медленно. В общем искать надо. А цифры для ориентира я Вам привел. |
|
|
hermit
2 Posts |
Posted - 03/18/2003 : 09:42:17
|
quote: Originally posted by Tumanov
- упрощение изображения шейпов (либо красота, либо скорость); - оптимизация алгоритмов (если скорость к концу замедляется, значит она зависит от размера коллекций, возможно неоптимальны какие-то поиски, переборы); - способ размещение программной части. Например просмотр приложения Visio из внешнего экзешника работает довольно медленно.
Спасибо большое за грамотный своевременный ответ. Несколько уточняющих комментариев и вопросов. 1. Насколько я могу судить, скорость у концу замедляется прежде всего из-за того, что коннектор долго рассчитыват свое положение относительно соседей-коннекторов. Соседей же просто оченьмного. Можно ли заставить коннектор не рассчитываться а просто упасть, как есть? 2. Насчет внешнего экзешника - мне казалось, что откомпилированный код должен побыстрее выполнятся? Или по крайней мере также. Если нет, то, что использовать? VBA? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 03/18/2003 : 11:47:29
|
1. В плане оглупления коннекторов, даже не знаю. Может еще кто подскажет... 2. А насчет экзешника ситуация следующая. Сам он действительно работает быстро. А вот когда ему приходится часто обращаться к Visio (другому приложению), тут-то времени уходит пропасть. То есть переключений должно быть как можно меньше. Если основная работа идет с рисунком, с коллекциями, то я бы выбрал VBA. |
|
|
|
Topic |
|
|
|