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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2013, 09:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,626 / 848 (80) +++++++
Регистрация: 28.10.2006
Dynamics AXBR: AX2012 – Common Intermediate Language (CIL) – (Parte I)
Источник: http://feedproxy.google.com/~r/daxbr/~3/X9ISszl_Cck/
==============

Caros,
Hoje parei para dar uma lida noCIL que o AX 2012 implementa e vou tentar explicar.

CIL é o resultado de uma compilação de mais baixo nível do que a gerada pelo X++ e por consequência ganha-se performance.

Todo código X++ compilado dentro do AX é compilado em um bytecode intermediário e esse formato é então usado pelo runtime do AX, tanto no client como no server. O compilador X++ gera apenas o bytecode para gerar o código CIL, no entanto você precisa gerar manualmente tanto o Incremental CIL como Full o CIL, ambos estão disponíveis na barra de ferramentas.



Como já foi falado, o principal benefício de se usar X++ como CIL é a performance. Geralmente o runtime do .Net é significativamente mais rápido que o X++, e em certos casos o ganho de performance é mais notável ainda, vejam:
  • Situações com muitas chamadas de métodos -> No runtime do X++ qualquer chamada de método acontece através de reflections, no caso do CIL acontece no nível do processador.
  • Situações com muitos objetos de ‘vida curta’ -> O Garbage Collector (GC) do AX irá sempre analisar o objeto que saiu de escopo para verificar se há algum objeto que pode ser desalocado, no caso do CIL o GC ira determinar o melhor momento para desalocar o objeto e liberar memória.
  • Situações com uso extensivo de .Net Interop -> Rodando o X++ como CIL, todas as conversões e enpacotamentos serão evitados.
Um exemplo real onde podemos verificar que o código como .Net CIL faz uma diferença significante é na ferramenta Compare. Mesmo com o algorítimo tendo poucas chamadas de métodos, poucos objetos de vida curta, e sem .Net interop, o uso do CIL faz com que em 10 segundos seja possível se comparar 3500 linhas de texto, enquanto no X++ nativo você só conseguiria comparar 600 linhas.

No geral, apenas os batch jobs e o services rodam como CIL, no entanto, se você quiser forçar códigos X++ rodarem como CIL fora destes casos, você poderá usar os métodos runClassMethodIl e runTableMethodIl que são implementados pela classe Global.

Há outras formas também de fazer, mas discutiremos em outro post.

Referências:
Inside Microsoft Dynamics AX 2012.
Dynamics AX Daily
Common Language Runtime
Common Intermediate Language



Источник: http://feedproxy.google.com/~r/daxbr/~3/X9ISszl_Cck/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 13 Blog bot Dynamics CRM: Blogs 0 27.03.2013 22:12
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 12 Blog bot Dynamics CRM: Blogs 0 30.01.2013 01:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 10 Blog bot Dynamics CRM: Blogs 0 17.08.2012 03:27
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05

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

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

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