Поведение нечетной памяти - PullRequest
2 голосов
/ 08 сентября 2011

У меня в основном есть объект, из которого я вызываю две функции и три функции.

function func1()
    M.mfunc1( 'updateSomething' );
    // do some stuff
    M.mfunc2();
}

function func2 () {
  M.mfunc1 ( 'hitSomething' );
  // does something but line is stable
  M.mfunc2();
}

function func3 () {
  M.mfunc1 ( 'doesSoemthing' );
  //does nothing, but causes memory to grow
  M.mfunc2();
}

M.mfunc1 = function ( name ) {
  // code is all commented out
}

M.mfunc2 = function () {
  // code is all commented out
}

func1 n вызывается в главном цикле с использованием setTimeout.При использовании инструментов разработчика Chromes на временной шкале, отслеживающей память, память неожиданно увеличивается при вызове func3, но если я закомментирую вызовы M, она останется стабильной.Я прибегнул к комментированию всего из M.mfunc1 и M.mfunc2, и, просто назвав его одиноким, это приводит к увеличению использования памяти.

Теперь кто-нибудь может мне это объяснить?1013 * Обновление : я сделал свой код более похожим на то, что есть на самом деле.

Обновление 2 : поскольку приведенный мной пример кода не является проблемой, вот ссылка на весь код: http://test.startailpro.co.uk/breaking/

Функцииupdate, updateDirection, hitBlock, doesBall_hitBlock, MEMORY.deep и MEMORY.rise.

1 Ответ

0 голосов
/ 24 сентября 2011

В конце концов я переписал весь код. Я действительно сумел написать все это без использования объектов, за исключением загрузки. Я до сих пор не знаю, что не так с оригинальным кодом, но теперь я лучше понимаю, что память используется и растет.

Распределение памяти

Я бы порекомендовал быть осторожным, какие рамки вы выберете. Я нашел в jQuery, что события вызывают рост памяти. Поскольку вы получаете объект и объект генерируется для события, это не проблема. Хотя я предполагаю, что объекты событий являются нативными и оптимизированы, поэтому увеличение объема памяти не является проблемой. Опять же, будьте осторожны с фреймворками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...