16.01.2004, 15:48 | #1 |
Участник
|
Оптимизация кода X++
Что-то я нигде не нашел на данном сайте как оптимизировать код с точки зрения производительности.
Мне дали доработать некий класс, который занимается выбрасыванием в текстовый файл некоторой выборки. Время выполнения этого класса очень велико. В оригинале примерно 5тыс записей выводились около 10 минут. Ну хорошо, ввожу я свои исправления в код класса. Но как проверить насколько ускорит (замедлит) моя модификация весь процесс? Сейчас я действую примерно так: PHP код:
Как можно оценить насколько реально изменится время выполнения кода? PS: я работаю в 3-х звенке. |
|
16.01.2004, 16:07 | #2 |
Дмитрий Ерин
|
Цитата:
timenowBegin=timenow();
Цитата:
Проблема в том, что если один и тот же код запустить два...три раза подряд, то интервал времени сильно "гуляет". Разница может достигать 50%.
|
|
16.01.2004, 16:31 | #3 |
NavAx
|
Для тестирования запросов удобно пользоваться мониторингом (Сервис - Параметры - SQL). Установите там апертуру и выкидывайте в инфолог медленно выполняющиеся запросы.
Double click по запросу в infolog вызывает Мониторинг запросов, в котором можно проанализировать запрос. Посмотрев на план исполнения увидите используются ли индексы, может нужно какой добавить и т.п.
__________________
С уважением, Игорь Ласийчук. |
|
16.01.2004, 16:49 | #4 |
Участник
|
для оптимизации остального кода пользуйтесь профайлером.
|
|
16.01.2004, 18:15 | #5 |
Участник
|
По порядку:
Цитата:
Тут надо смотреть тот самый "некий код"...
Цитата:
Для тестирования запросов удобно пользоваться мониторингом (Сервис - Параметры - SQL)
Цитата:
для оптимизации остального кода пользуйтесь профайлером
|
|
16.01.2004, 18:32 | #6 |
----------------
|
Цитата:
В данном случае запросы как раз короткие. Просто их очень много. Постоянный повтор в цикле. Это кроме разных if
Если их кол-во уменьшится, и при этом длительность запросов не возрастет, то вы добились нужного результата. Так как и Аксапта и SQL-сервер умеют кэшировать данные, то запуская на одних и тех же условиях вы будете получать разные времена исполнения, а вот кол-во запросов вряд ли изменится. |
|
16.01.2004, 19:13 | #7 |
Участник
|
Цитата:
Изначально опубликовано Владимир Максимов
Профайлер - это несколько не то. У меня всего один метод, который очень долго выполняется и мне надо посмотреть сколько времени тратится на выполнение разных его фрагментов. Профайлер показывает время исполнения каждой строки с оператором Х++. Так, у меня появилось подозрение: Вы о каком профайлере говорите? Я о аксаптовском. Меню сервис \ Средства разработки \ профайлер кода. |
|
19.01.2004, 10:47 | #8 |
Участник
|
Всем спасибо. Буду разбираться дальше самостоятельно.
|
|
19.01.2004, 15:24 | #9 |
Участник
|
еще стоит добавить, что если этот "некий" код обращается к БД, то первое его выполнение может быть длинее последующих (за счет кеширования потом)
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Оптимизация класса Tax | 43 | |||
Оптимизация кода с LedgerTrans | 18 | |||
Оптимизация кода | 11 | |||
проблема с настройкой штрихового кода | 4 | |||
Использование штрихового кода (barcode) в Аксапта | 9 |
|