Показать сообщение отдельно
Старый 07.08.2015, 09:43   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Инкрементный CIL не настолько инкрементный, как может показаться Сборка приложения (Dynamics.Ax.Application.dll) состоит из примерно тысячи отдельных файлов - netmodule'ей, и минимальной единицей инкрементной компиляции CIL является такой netmodule. Ядро старается сделать netmodule'и примерно одинаковыми по размеру и для этого как-то там по-своему распределяет объекты приложения между ними. Таким образом, в общем случае при инкрементной компиляции CIL, во-первых, в netmodule кроме изменившихся объектов приложения попадает еще несколько десятков других объектов, которые не менялись, а во-вторых, если изменившихся объектов приложения много, весьма вероятно, что они попадут в несколько разных netmodule'ей. Из-за этого получается, что при инкрементной компиляции CIL после изменения даже одного объекта ядро перекомпилирует десятки и сотни объектов приложения. Проблемы с не изменившимися объектами при этом, как правило, возникают из-за проблем в компиляции кода X++; лечится это, соответственно, компиляцией кода X++ проблемных объектов либо глобальной компиляцией с помощью той же axbuild.
За это сообщение автора поблагодарили: EVGL (1), Logger (1), Polgid (1), АртемМелихов (1).