12.04.2006, 10:08 | #1 |
Участник
|
Утечка памяти при вызове 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 |
Участник
|
очень специфичная утечка.
борюсь с падениями АОС (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); } 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; }
__________________
--- SHiSHok Последний раз редактировалось SHiSHok; 10.12.2009 в 16:34. |
|
10.12.2009, 20:33 | #3 |
Участник
|
Послушайте, ну зачем вам ax3sp3cu1 ?
Эта ошибка если не ошибаюсь уже вылечена в более свежих версиях. Поставьте KR3 и все. |
|
11.12.2009, 12:11 | #4 |
Участник
|
как раз анализирую этот вопрос.
__________________
--- SHiSHok |
|