Оптимизирую свое творчество, столкнулся с проблемой.
При оптимизации выделенная память начинает бурно расти, превышает объем физической памяти, после чего комп, естественно, морозится, и приходится прекращать оптимизацию (либо даже просто убивать АД). После прекращения оптимизации память освобождается очень медленно, время исчисляется минутами (~5 минут и более)!
Пробовал в 3-х вариантах.
Код: Выделить всё
function Initialize()
{
...
 AddGlobalVariable("Cnt", Types.Int, 0);
}
function OnUpdate()
{
 if((int)Cnt==0)
 {
  if(...)  // проверка соотношения параметров скрипта
   Stop();  // вариант 1 - самый быстрый
// return;  // вариант 2 - помедленнее, т.к. проходится по всему заказанному периоду тестирования, но ничего не делает
// вариант 3 - позволить работу с неверным соотношением, самый медленный; делает всё, что прописано в скрипте
  Cnt++; 
 }
 ...
}Проверка соотношения параметров скрипта делается для того, чтобы пропускать бессмысленные сочетания параметров, которые перещелкивает тестировщик (вроде SMAfast>=SMAslow).
Самый плохой вариант - первый (память загаживается почти мгновенно), затем второй (помедленнее), затем третий (но все равно не спасает).
Из сделанных наблюдений прихожу к выводу, что проблема м.б. в сборщике мусора. Похоже, что он работает слишком лениво и не успевает очищать память после отработки очередной "точки" тестирования.
Вопрос: реально ли из скрипта прочесть размер занимаемой памяти и вручную вызвать GC, если он становится слишком велик?
Если да, то большая просьба показать, как это сделать.
TIA.
 Вначале он жаловался, что брекпойнт недостижим, а потом я что-то "ткнул" научно - и на нем отладчик остановился, и можно делать шаги, смотреть переменные (почему-то не все), т.е. работает. Попробую сегодня воспроизвести позитивный опыт в "сознательном" режиме.
  Вначале он жаловался, что брекпойнт недостижим, а потом я что-то "ткнул" научно - и на нем отладчик остановился, и можно делать шаги, смотреть переменные (почему-то не все), т.е. работает. Попробую сегодня воспроизвести позитивный опыт в "сознательном" режиме.