|  27.10.2016, 12:40 | #1 | 
| Боец | 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 | 
| Участник | |
|  | |
| За это сообщение автора поблагодарили: mazzy (2), Logger (3), MikeR (2). | |
|  27.10.2016, 16:57 | #3 | 
| Участник | 
			
			В 2012-й не исследовал, но в 2009-й еще могло тормозить на больших объектах которые лежат на куче слоев. Например, есть SalesTable табличка с кучей кастомизаций и большим числом методов. Аксапта при формировании комбобоксов для сравнения грузит в память treenode из каждого слоя (примерно 5 штук) и из каждого old слоя - еще 5 штук. И зачем-то делает это дважды. На этом может теряться секунд 20-40 - зависит от нагрузки на сервера. Можно это место оптимизировать - подгружая в память treenode объекта со слоя не сразу, а только когда (и если) он вообще понадобится. Но это модификация не на пару строк кода.
		 | 
|  | 
|  27.10.2016, 18:23 | #4 | 
| MCTS | Цитата: 
		
			Сообщение от 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. | 
|  | 
|  27.10.2016, 23:18 | #5 | 
| Боец | 
			
			не препятствует. Главное чтобы CIL был собран в области компаратора.
		 | 
|  | 
|  28.10.2016, 01:23 | #6 | 
| Британский учённый | Цитата:  У меня всё руки не доходят прикрутить сравнение с помощью VS. 
				__________________ Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. | 
|  | 
|  28.10.2016, 10:56 | #7 | 
| MCTS | 
			
			Могли бы пояснить что имеется в виду? Перед тем как что-то сравнить нужно сначала это что-то откомпилить в CIL, чтобы сравнение работало с включенной галкой выполнять в CIL?
		 | 
|  | 
|  28.10.2016, 11:25 | #8 | 
| MCTS | 
			
			Собственно там в комментах как раз ссылка на статью с примером реализации исключения компаратора из проверки глобального параметра выполнять в 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 | 
| Британский учённый | 
			
			Я про то, что если вы захардкодите выполнение в CIL а он у вас не рабочий, к примеру после установки хотфикса - при попытке сравнить будет вылетать ошибка и придется убирать код, что бы заработало.
		 
				__________________ Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. | 
|  | 
|  28.10.2016, 12:57 | #10 | 
| MCTS | Цитата: Единственно мне пока не совсем понятно в какой именно части должен быть нерабочим CIL, чтобы перестало работать сравнение через CIL: в любой или только в части данного класса и объектах которые он использует? Мне казалось что второе верно, но для меня это вообще очень редкий кейс. Последний раз редактировалось alex55; 28.10.2016 в 13:02. | 
|  | 
|  28.10.2016, 14:19 | #11 | 
| Британский учённый | Цитата: 
		
			Сообщение от 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 | 
| MCTS | Цитата: 
		
			Сообщение от Link
			   У меня принудительно ассоциируется с кодом, а параметр с гибким подходом.  Ну например у меня недавно было после восстановления из бэкапа и установки хотфиксов. Сравнение не работало пока не переключил на xpp. Поэтому я бы не советовал подход автора Do yourself a favor, and make this change on your Dev system, а делал бы сразу через отдельный параметр. Надеюсь теперь все точки расставил...   | 
|  | 
| Теги | 
| syscompareform, полезное, сравнение объектов, сравнение слоев | 
|  | 
| 
 |