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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2016, 12:40   #1  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
AX2012 X++ Comparison tool works slowly?
A useful hint how to improve performance of X++ comparison tool for AX2012: Just try to turn-on the parameter “Execute business logic in CIL” in your profile, it’ll compare elements extra fast.
It’s a common case when developers keep this option OFF that pushes Comparison tool to be executed in classic X++ mode instead of CIL.

Some details:

\Classes\SysCompareText\run
Вложение 11024

Последний раз редактировалось DSPIC; 28.09.2017 в 01:50.
За это сообщение автора поблагодарили: mazzy (2), Logger (3), MikeR (2), alex55 (1).
Старый 27.10.2016, 13:04   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
см. также mfp: The compare tool–and running X++ code as IL
За это сообщение автора поблагодарили: mazzy (2), Logger (3), MikeR (2).
Старый 27.10.2016, 16:57   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В 2012-й не исследовал, но в 2009-й еще могло тормозить на больших объектах которые лежат на куче слоев. Например, есть SalesTable табличка с кучей кастомизаций и большим числом методов. Аксапта при формировании комбобоксов для сравнения грузит в память treenode из каждого слоя (примерно 5 штук) и из каждого old слоя - еще 5 штук. И зачем-то делает это дважды. На этом может теряться секунд 20-40 - зависит от нагрузки на сервера. Можно это место оптимизировать - подгружая в память treenode объекта со слоя не сразу, а только когда (и если) он вообще понадобится. Но это модификация не на пару строк кода.
Старый 27.10.2016, 18:23   #4  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
A useful hint how to improve performance of X++ comparison tool for AX2012: Just try to turn-on the parameter “Execute business logic in CIL” in your profile, it’ll compare elements extra fast.
It’s a common case when developers keep this option OFF that pushes Comparison tool to be executed in classic X++ mode instead of CIL.
Как вариант, вместо включения галки просто для класса SysCompareText от проверки параметра отвязаться, поставив выполнение в CIL принудительно (если речь про приложение для разработки во всяком случае). Вроде этому ничего особо не препятствует?
Старый 27.10.2016, 23:18   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от alex55 Посмотреть сообщение
Как вариант, вместо включения галки просто для класса SysCompareText от проверки параметра отвязаться, поставив выполнение в CIL принудительно (если речь про приложение для разработки во всяком случае). Вроде этому ничего особо не препятствует?
не препятствует. Главное чтобы CIL был собран в области компаратора.
Старый 28.10.2016, 01:23   #6  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 513 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от alex55 Посмотреть сообщение
Как вариант, вместо включения галки просто для класса SysCompareText от проверки параметра отвязаться, поставив выполнение в CIL принудительно (если речь про приложение для разработки во всяком случае). Вроде этому ничего особо не препятствует?
Плохая идея - без работающего CIL не будет работать. У меня чекбокс на форме которая выставляет глобальную переменную, которая в свою очередь игнорирует настройки пользователя для сравнения. Проблема в том, что когда нужно много и долго сравнивать (после апгрейдов и хотфиксов) CIL то как раз и не рабочий. Так что всё как обычно - красиво в теории и бесполезно на практике У меня всё руки не доходят прикрутить сравнение с помощью VS.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 28.10.2016, 10:56   #7  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Link Посмотреть сообщение
Плохая идея - без работающего CIL не будет работать... Проблема в том, что когда нужно много и долго сравнивать (после апгрейдов и хотфиксов) CIL то как раз и не рабочий. Так что всё как обычно - красиво в теории и бесполезно на практике
Могли бы пояснить что имеется в виду? Перед тем как что-то сравнить нужно сначала это что-то откомпилить в CIL, чтобы сравнение работало с включенной галкой выполнять в CIL?
Старый 28.10.2016, 11:25   #8  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Собственно там в комментах как раз ссылка на статью с примером реализации исключения компаратора из проверки глобального параметра выполнять в CIL. Только ссылка битая, вот нормальная: Do yourself a favor, and make this change on your Dev system - https://community.dynamics.com/ax/b/...our-dev-system
За это сообщение автора поблагодарили: Logger (1).
Старый 28.10.2016, 11:48   #9  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 513 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от alex55 Посмотреть сообщение
Могли бы пояснить что имеется в виду? Перед тем как что-то сравнить нужно сначала это что-то откомпилить в CIL, чтобы сравнение работало с включенной галкой выполнять в CIL?
Я про то, что если вы захардкодите выполнение в CIL а он у вас не рабочий, к примеру после установки хотфикса - при попытке сравнить будет вылетать ошибка и придется убирать код, что бы заработало.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 28.10.2016, 12:57   #10  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Link Посмотреть сообщение
Я про то, что если вы захардкодите выполнение в CIL а он у вас не рабочий, к примеру после установки хотфикса - при попытке сравнить будет вылетать ошибка и придется убирать код, что бы заработало.
Вообще я про хардкод ничего не писал. Принудительное выполнение можно и через новый параметр реализовать, идея была в том чтобы от глобального параметра отвязаться. Но спасибо за полезное замечание.

Единственно мне пока не совсем понятно в какой именно части должен быть нерабочим CIL, чтобы перестало работать сравнение через CIL: в любой или только в части данного класса и объектах которые он использует? Мне казалось что второе верно, но для меня это вообще очень редкий кейс.

Последний раз редактировалось alex55; 28.10.2016 в 13:02.
Старый 28.10.2016, 14:19   #11  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 513 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от alex55 Посмотреть сообщение
Вообще я про хардкод ничего не писал. Принудительное выполнение можно и через новый параметр реализовать, идея была в том чтобы от глобального параметра отвязаться. Но спасибо за полезное замечание.

Единственно мне пока не совсем понятно в какой именно части должен быть нерабочим CIL, чтобы перестало работать сравнение через CIL: в любой или только в части данного класса и объектах которые он использует? Мне казалось что второе верно, но для меня это вообще очень редкий кейс.
У меня принудительно ассоциируется с кодом, а параметр с гибким подходом.

Ну например у меня недавно было после восстановления из бэкапа и установки хотфиксов. Сравнение не работало пока не переключил на xpp. Поэтому я бы не советовал подход автора Do yourself a favor, and make this change on your Dev system, а делал бы сразу через отдельный параметр. Надеюсь теперь все точки расставил...
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 28.10.2016, 14:49   #12  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Link Посмотреть сообщение
У меня принудительно ассоциируется с кодом, а параметр с гибким подходом.

Ну например у меня недавно было после восстановления из бэкапа и установки хотфиксов. Сравнение не работало пока не переключил на xpp. Поэтому я бы не советовал подход автора Do yourself a favor, and make this change on your Dev system, а делал бы сразу через отдельный параметр. Надеюсь теперь все точки расставил...
Я тоже за гибкость и красоту, особенно если они покрывают 80% потребностей за 20% усилий. А если голое приложение раз в неделю персонально для себя из репозитория разворачиваешь и свои девелоперские примочки накатываешь на системные объекты (желательно со сравнением), то и хардкод более чем 80% потребностей легко покроет. Так что реализация приведенная по ссылке выше вполне имеет право на жизнь имхо
Теги
syscompareform, полезное, сравнение объектов, сравнение слоев

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axilicious:Release Management for VS2013 … and AX : The first tool Blog bot DAX Blogs 0 04.10.2014 12:11
emeadaxsupport: AX Content: The Compare Tool works with SSRS reports Blog bot DAX Blogs 0 07.04.2014 18:11
dynamicsaxbi: What’s New: Comparison Tool Enhancements Blog bot DAX Blogs 0 14.03.2014 07:11
axtools: How the X++ compiler works for AX2012 Blog bot DAX Blogs 0 12.06.2013 04:22
dynamicscare: Production Flows in AX2012 – a comparison of Lean and Traditional. Blog bot DAX Blogs 0 01.10.2011 03:13

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:29.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.