AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2006, 10:41   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
? profiler: как правильно искать узкие места в приложении?
Встроенный профайлер замедляет быстродействие примерно раз в 30.

При этом он это делает только для кода, который выполняется аксаптой, а SQL остается как есть.

Таким образом, в результате картина узких мест сильно искажена.

кто-нибудь решал задачи измерения быстродействия и профилирования и каким образом?

Я сделал тупую имплементацию профилировщика, но он тоже тормозит отчего следующий вопрос:
Может быть можно написать внешний компонент, например, DLL и вызывать её?
Каким образом с ней проще и быстрее общаться? (COM, DLLFunction)
Вложения
Тип файла: zip DummyProfiler.zip (1.1 Кб, 67 просмотров)
Старый 20.12.2006, 11:08   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
А ты уверен, что он не учитывает это замедление при составлении отчета?
Когда я пользуюсь макросами профайлера, отображаемое в отчете время исполнения значительно меньше реального времени работы
__________________
Isn't it nice when things just work?
Старый 20.12.2006, 11:12   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
а что за макросы?
Старый 20.12.2006, 11:22   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Полагаю, имеются ввиду #profileBegin, #profileEnd и #profileFlush
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 20.12.2006, 11:29   #5  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А прикладную проблему то можно озвучить?

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

Но для того, чтобы убедиться в неоптимальности алгоритма, хронометраж с точностью до миллисекунд, IMHO, не нужен.

М.б. вы сможете другой пример привести?
__________________
С уважением,
glibs®
Старый 20.12.2006, 11:57   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Вобщем задача специфическая. Пока пытаюсь понять, где порылись тормоза.

В целом: есть бетч джоб, который по хитрому алгоритму производит пере распределение потребностей между складами (ReqPo.qty = newQty; ReqPo.update())

После чего происходит их обработка классом ReqTransPoMarkFirm

Сейчас больше половины времени жрется на ReqPo.update(). Требуется выяснить насколько изменится быстродействие если в апдейте останется только то, что надо.

В качестве очень грубого приближения заменяем ReqPo.update на ReqPo.doUpdate.

время на обновления записи схлопывается в нуль, но при этом ReqTransPoMarkFirm.run сильно замедляется. вопрос - почему?

Точность до миллисекунды не нужна, нужно чтоб хотябы соотношения времен были нормальные.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axStart: Starting the code profiler from code Blog bot DAX Blogs 0 17.03.2008 15:05
aEremenko: Как правильно подобрать оборудование и понять, сколько оно будет стоить? Blog bot DAX Blogs 0 17.04.2007 12:00
Как правильно обращаться к элементам формы созданнй динамически из АОТ? 3oppo DAX: Программирование 2 29.11.2006 09:57
SQL Profiler не показывает процедуры!SOS! naomy DAX: Программирование 13 28.09.2005 14:33
Как правильно настроить возврат материалов из производства? Tony Green DAX: Функционал 14 22.10.2004 11:33

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:06.