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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.03.2013, 17:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,617 / 848 (80) +++++++
Регистрация: 28.10.2006
axforum blogs: Использование слабых ссылок для повышения производительности
Источник: http://axforum.info/forums/blog.php?b=387
==============

Как широко известно, в X++ используется подсчет ссылок в качестве сборки мусора.
Причем для того, чтобы собирать циклы (когда объект A ссылается на B а B на A) используется счетчик циклов.
Таким образом, каждый раз при присваивании поля класса, аксапта проходит по всем ссылкам и пытается найти циклы чтобы обновить счетчик.

Это может быть очень долго. Особенно если есть циклы.

Но есть способ сделать ссылку, которая точно не приводит к образованию цикла. Это “слабая ссылка” – класс ObjectIdent.
Суть в том, что такая ссылка не удерживает объект на который ссылается и он может быть собран сборщиком мусора.

Таким образом, если мы уже знаем что объект уже используется где-то еще и точно не удалится, то мы может сделать на него слабую ссылку (передав его аргументом конструктора ObjectIdent ) а потом добыть его из этой ссылки при помощи метода object.

На моем примере, содержащем, кучу циклических ссылок, вышло так:
  • Запуск под X++ - 717074
  • Запуск под IL - 5335
  • Запуск под X++ со слабой ссылкой - 8814

Под IL быстрее, так как там не используется подсчет ссылок (но и не гарантируется удаление объекта сразу после окончания использования)


Источник: http://axforum.info/forums/blog.php?b=387
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Budget entries import in AX2012 Blog bot DAX Blogs 0 21.11.2012 00:12
DynamicsAxSCM: Visualizing Security in Microsoft Dynamics AX 2012 Blog bot DAX Blogs 0 29.08.2011 13:11
crminthefield: How to Create a Silverlight Web Resource that Interacts with CRM 2011 Forms Blog bot Dynamics CRM: Blogs 0 24.06.2011 04:17
Microsoft Dynamics CRM Team Blog: Welcome to the World of Dialogs - Part 1 Blog bot Dynamics CRM: Blogs 0 02.02.2011 21:11
DynamicsAxSCM: Personalization of Role Centers in Dynamics AX 2009 Blog bot DAX Blogs 0 21.06.2010 16:05

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

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

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