23.03.2007, 10:58 | #1 |
Участник
|
Создание экземпляра класса 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)))); } В принципе , такая проверка безопасна, она не позволит обратиться к методам такого класса.Но, пока dictTable (в принципе, это касается всего семейства классов Dict*) находится в области видимости, объект остается в памяти. По-моему, это ведет к потенциальным утечкам памяти Такое поведение воспроизводится на ax 3.0 sp3, sp5 с KR2 и без него, ax 4.0 без sp
__________________
Axapta v.3.0 sp5 kr2 |
|
Теги |
ax3.0, ax4.0 |
|
|