Здесь показаны различия между двумя версиями данной страницы.
— |
axapta:управлениепамятью [2018/04/13 22:43] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | Раздел: [[Программирование | ]] > [[СредаИсполнения]] | ||
+ | ---- | ||
+ | В Axapta есть [[:СборкаМусора]]. (Настраивается: Сервис\Параметры\Разработка\Критерий начала сборки мусора) | ||
+ | Менеджер памяти построен на основе библиотеки [[:SmartHeap]], надо которой есть обёртка -- Класс/HeapCheck | ||
+ | |||
+ | |||
+ | В Ax2009 от использования [[~SmartHeap]] отказались (поскольку даже SMP - версия была неидеальна с точки зрения работы с объектами синхронизации). В версии 2009 smartheap бlibrary был заменена на [[http://msdn.microsoft.com/en-us/library/aa366750(VS.85).aspx]], появившийся в Windows 2003. | ||
+ | |||
+ | имеется Функция/SmartHeapMemorySizeUp | ||
+ | <code XPP> | ||
+ | static void SmartHeap(Args _args) | ||
+ | { | ||
+ | HeapCheck hc; | ||
+ | int i, pageSize, newPageSize; | ||
+ | ; | ||
+ | |||
+ | hc = new HeapCheck(); | ||
+ | i = hc.poolCount(); | ||
+ | while (i>0) | ||
+ | { | ||
+ | print 'Data for pool no = ' + int2str( i ); | ||
+ | print 'FixedBlockSize = ' + int2str( hc.fixedBlockSize(i) ) + 'SmallBlockSize = ' + int2str( hc.smallBlockSize(i) ); | ||
+ | pageSize = hc.pageSize(i); | ||
+ | if (pageSize < 32768) | ||
+ | { | ||
+ | newPageSize = 2 * pageSize; | ||
+ | hc.pageSize( i, newPageSize ); | ||
+ | } | ||
+ | else | ||
+ | newPageSize = pageSize; | ||
+ | print 'PageSize = ' + int2str( pageSize ) + 'PageSize = ' + int2str( newPageSize ); | ||
+ | |||
+ | i--; | ||
+ | } | ||
+ | pause; | ||
+ | } | ||
+ | </code> | ||
+ | ---- | ||
+ | см. [[:ФорумMazzy]]: [[http://forum.mazzy.ru/index.php?showtopic=3374]] | ||
+ | * [[AxForum:5156]] | ||
+ | * [[http://axforum.info/forums/showthread.php?p=184444]] |