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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2007, 10:58   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
! Создание экземпляра класса Dict*
Предлагаю вниманию такой код
X++:
static void JobXXXX(Args _args)
{
    DictTable   dictTable;
    HeapCheck   hc = new HeapCheck();
    ;
    info (strfmt("Кол-во объектов в памяти до создания %1", hc.countObjects(classnum(DictTable))));
    dictTable = new DictTable(0);
    if (dictTable == null) 
        info("Проверка на NULL вернула истину");
    info (strfmt("Кол-во объектов в памяти после создания %1", hc.countObjects(classnum(DictTable))));
    dictTable = null;
    info (strfmt("Кол-во объектов в памяти после присвоения NULL %1", hc.countObjects(classnum(DictTable))));
}
Получается, что проверка на NULL для класса не дает ответа - создался он или нет.
В принципе , такая проверка безопасна, она не позволит обратиться к методам такого класса.Но, пока dictTable (в принципе, это касается всего семейства классов Dict*) находится в области видимости, объект остается в памяти.
По-моему, это ведет к потенциальным утечкам памяти

Такое поведение воспроизводится на ax 3.0 sp3, sp5 с KR2 и без него, ax 4.0 без sp
__________________
Axapta v.3.0 sp5 kr2
Теги
ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Диалог - программное создание из класса Arahnid DAX: Программирование 4 08.10.2008 18:20
Создание номенклатуры с использ. axInventTable класса. Можно ли запретить использование шаблонов записей? Hub DAX: Программирование 2 03.09.2008 15:12
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40
Проблема с инициализацией экземпляра объекта Jox DAX: Программирование 2 11.01.2006 12:55
Создание экземпляра COM по его CLSID Borisov Nikolai DAX: Программирование 1 02.12.2002 10:37

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

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

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