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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2006, 10:08   #1  
gb20 is offline
gb20
Участник
 
6 / 11 (1) +
Регистрация: 12.04.2006
Утечка памяти при вызове orig()
При серьездной операции шла утечка памяти, опытным путем определил что вызов метода orig() у новой записи(не сохраненной в бд) дает утечку памяти, например след джоб пожирает за один запуск около 20-30 мб.

static void JobMemoryLeakage(Args _args)
{
SalesLine salesLine;
int i;
;
while (i <= 50000)
{
i++;
salesLine.orig();
}
}

Проверено на SP3 и SP5
За это сообщение автора поблагодарили: SHiSHok (1).
Старый 10.12.2009, 16:12   #2  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
очень специфичная утечка.
борюсь с падениями АОС (ax3sp3cu1 +khf), уже перелопатил кучу кода где возможны бока. Утечка памяти в указанном примере имеет место быть, НО только на null курсоре. поясняю тестовым классом:

X++:
static void Job_TEST_Mem(Args _args)
{
    SalesLine salesLine, sl;
;
    select salesLine;

    test::JobMemoryLeakage();  // A
    print("JobMemoryLeakage() - done");
    pause;
    test::testSalesLine(null);  // B  грызет память
    print("testSalesLine(null) - done");
    pause;
    test::testCommon(null);
    print("testCommon(null) - done");
    pause;

    test::testSalesLine(sl);
    test::testCommon(sl);

    sl.CurrencyCode = 'UAH';
    test::testSalesLine(sl);
    test::testCommon(sl);

    sl.initFromSalesLine(salesLine);
    test::testSalesLine(sl);
    test::testCommon(sl);
}
класс TEST
X++:
static server void testSalesLine(salesLine _salesLine)
{
    SalesLine slOrig;
    int i;
;

    while (i <= 30000)
    {
        i++;
        slOrig = _salesLine.orig();
    }
}
X++:
static server void testCommon(Common  buffer)
{
    common          orig = buffer.orig();
    int             i;
;

    while (i <= 30000)
    {
        i++;
        orig = buffer.orig();
    }

}
X++:
static server void JobMemoryLeakage()
{
    SalesLine   sl, slOrig;
    int i;
;

    while (i <= 30000) // A.1  грызет память
    {
        i++;
        slOrig = sl.orig();
    }
    print("JobMemoryLeakage - null cursor" );
    pause;

    sl.LineNum =1;
    while (i <= 30000) // не грызет память
    {
        i++;
        slOrig = sl.orig();
    }
    print("JobMemoryLeakage - not null cursor" );
    pause;
}
Утечка памяти наблюдается (открываем taskmgr или processExplorer и смотрим) в случае A.1 и B. Очень специфично получается.
__________________
--- SHiSHok

Последний раз редактировалось SHiSHok; 10.12.2009 в 16:34.
Старый 10.12.2009, 20:33   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Послушайте, ну зачем вам ax3sp3cu1 ?
Эта ошибка если не ошибаюсь уже вылечена в более свежих версиях.
Поставьте KR3 и все.
Старый 11.12.2009, 12:11   #4  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Цитата:
Сообщение от Logger Посмотреть сообщение
Послушайте, ну зачем вам ax3sp3cu1 ?
Эта ошибка если не ошибаюсь уже вылечена в более свежих версиях.
Поставьте KR3 и все.
как раз анализирую этот вопрос.
__________________
--- SHiSHok
Теги
ax3.0, heap, memory, orig, утечка памяти

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование памяти клиентского ПК falcon65 DAX: Администрирование 0 07.11.2007 11:49
При использовании SetTimeOut() происходит утечка памяти Jox DAX: Программирование 2 21.07.2006 10:56
Утечка памяти? Почему? Ax3 sp 4 lagr221374 DAX: Программирование 17 15.03.2006 18:23
утечка памяти в аксапта jekill DAX: Администрирование 69 07.03.2006 10:25
В памяти остается COM (Excell) bucken DAX: Программирование 3 19.12.2003 18:08
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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