|  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 | 
|  |