Быстродействие
Модераторы: m0p3e, edward_K, Модераторы
LaaLaa
все что вы пишите к реалиям не имеет никакого отношения, вы пишете о следствии, а я говорю о причине. Как найти bottle neck? Нужен профайлер. Нашли где провисает, дальше думаем как исправить, читаем книги, спрашиваем ЛаЛа как дальше жить. Но вначале нужно найти где провисает! А для этого и нужен профайлер, ссылку на который вы (я очень на это надеюсь) дадите
все что вы пишите к реалиям не имеет никакого отношения, вы пишете о следствии, а я говорю о причине. Как найти bottle neck? Нужен профайлер. Нашли где провисает, дальше думаем как исправить, читаем книги, спрашиваем ЛаЛа как дальше жить. Но вначале нужно найти где провисает! А для этого и нужен профайлер, ссылку на который вы (я очень на это надеюсь) дадите
Это встроенная функция в отладчике VIP, который открывается прямо в Галактике. Смотрите окно с текстом находящегося под отладкой кода, в тулбаре там кнопки есть: установить точки профилировки, окно результатов профилировки. И читайте документацию F1 в окне отладчика VIP про профилировку там тоже написано.выложите, очень нужен!!!!
Свой код вы можете без проблем профилировать.
Тока возьмите AtlExec.exe версии 5.4.21.0 или выше, в профилировщике была была устранена одна критично важная проблема.
Где повисает, как не прискорбно звучит, всегда определяет пользователь. Определяет его на уровне времени отклика бизнес функции. И нужно эту информацию передать разработчику. А уже разработчик должен детали этой бизнес функции раскладывать по времени.galover писал(а):LaaLaaНо вначале нужно найти где провисает!
давайте по шагам, есть интерфейс в Галактике. Запускаю его. Как получить расклад по времени и кол-ву вызовов функций данного фейса. Т.е. нужно получить что-то (примерно)
Естественно это будет запускаться на клиенте, кто ж спорит. Если есть профилировщик почему ТП никогда не просит прислать его результаты? Это же просто решает все проблемы сразу!
Код: Выделить всё
RunInterface - 100 часов 1 вызов
-> RunAlg100(5, 1) - 2 часа - 1 вызов
-> CalcSomeVal - 1час - 3 вызова
-> CalcOtherVal - 1 час - 5 вызовов
Шаги примерно такие:
Шаг1:
Скомпилировать интерфейс с отладочной информацией. Для этого в файле конфигурации компилятора VIP.EXE указать парметры
[Vip]
Debug=1
LocalDebug=1
Шаг2: полученный ресурс подключить к Галактике
Шаг3: В конфигурационном файле Галактики указать параметр активации отладочного режима:
[DEBUG]
EnableVipDebugger=on
Шаг3: Запустить галактику. Нажать сочетание клавиш [Ctrl+Shif+F12]. Откроется окно управления отладчиком.
Шаг4: На закладке загруженные интерфейсы. Найти интересующий интерфейс. Двойной клик мышкой открывает окно отладчика для этого интерфейса с исходным кодом. Если компилировали на той же машине что и запускаем то файл с исходным кодом найдется автоматом, если на другой машине нужно еще перенастроить пути.
Шаг5: В окне исходно го кода расставляем точки профилирования, и т.д. читаем [F1]
ТП это не рекомендует т.к. ресурсы галактики компилируются с выключенной отладочной информацией. И исходные коды в общем то галактика не поставляет. По известным причинам. По этому я говорю о том чтобы базу присылали в отдел разработки.
В можете воспользоваться профилировщиком для для своих доработок.
Шаг1:
Скомпилировать интерфейс с отладочной информацией. Для этого в файле конфигурации компилятора VIP.EXE указать парметры
[Vip]
Debug=1
LocalDebug=1
Шаг2: полученный ресурс подключить к Галактике
Шаг3: В конфигурационном файле Галактики указать параметр активации отладочного режима:
[DEBUG]
EnableVipDebugger=on
Шаг3: Запустить галактику. Нажать сочетание клавиш [Ctrl+Shif+F12]. Откроется окно управления отладчиком.
Шаг4: На закладке загруженные интерфейсы. Найти интересующий интерфейс. Двойной клик мышкой открывает окно отладчика для этого интерфейса с исходным кодом. Если компилировали на той же машине что и запускаем то файл с исходным кодом найдется автоматом, если на другой машине нужно еще перенастроить пути.
Шаг5: В окне исходно го кода расставляем точки профилирования, и т.д. читаем [F1]
ТП это не рекомендует т.к. ресурсы галактики компилируются с выключенной отладочной информацией. И исходные коды в общем то галактика не поставляет. По известным причинам. По этому я говорю о том чтобы базу присылали в отдел разработки.
В можете воспользоваться профилировщиком для для своих доработок.
Последний раз редактировалось LaaLaa 19 окт 2009, 15:20, всего редактировалось 1 раз.
эээ, ну так неинтересно, речь ведь идет о стандартных компонентах! Да и потом сам код и не нужен (пусть он будет закриптован в ресе), мне нужно получить только функцию и время ее выполнения. Пусть Галактика шифрует полученные данные профилирования и отправляет их на мыло разработчику, такой вариант что не рассматривался?
Еще одни момент. Профиллировщик VIP может измерять время работы только построчно и не отделяет время вложенных вызовов.
Хотя такие продукты как AQTime модут мерять
и по функциям (By routines - выдают два числа, собственно время функции Time, и время со всеми вложенными Time with Children)
так и по строчкам кода (By lines - тоде выдают два числа, собственно время строчки Time, и время строчки со всеми вложенными Time with Children)
Т.е профилировщик VIP выдает только (By lines - Time with Children) но и это уже сильно помогает.
Еще можно настроить чтобы подсчет шел по регионам кода, но настраивать регионы не удобно. Я ни разу этим не пользовался.
Хотя такие продукты как AQTime модут мерять
и по функциям (By routines - выдают два числа, собственно время функции Time, и время со всеми вложенными Time with Children)
так и по строчкам кода (By lines - тоде выдают два числа, собственно время строчки Time, и время строчки со всеми вложенными Time with Children)
Т.е профилировщик VIP выдает только (By lines - Time with Children) но и это уже сильно помогает.
Еще можно настроить чтобы подсчет шел по регионам кода, но настраивать регионы не удобно. Я ни разу этим не пользовался.
galover писал(а):эээ, ну так неинтересно, речь ведь идет о стандартных компонентах! Да и потом сам код и не нужен (пусть он будет закриптован в ресе), мне нужно получить только функцию и время ее выполнения. Пусть Галактика шифрует полученные данные профилирования и отправляет их на мыло разработчику, такой вариант что не рассматривался?
Считается, если поставлять отладочную информацию и исходный код то хакерам будет легко взломать защиту. :)
отправьте пожалуйста запрос в ПИР, у вас это быстрее получится и без всяких бюрократических проволочек в виде ТП. Удаленно профилировать я не прошу, нужен нормальный инструмент профилирования как своих, так и системных компонентов, идею можно подсмотреть здесь http://www.red-gate.com/products/ants_p ... /index.htm