Odd Memory behavior

Refresh

November 2018

Views

113 time

2

I basically have an object, which I call two functions from, and three functions.

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
}

func1n is called on a main loop using setTimeout. When using Chromes's Dev Tools on the Timeline watching Memory, memory suddenly grows on the call of func3, but if I comment out the M calls, it stays stable. I resorted to commenting everything out of M.mfunc1 and M.mfunc2 and by just calling it a lone, it causes memory usage to grow.

Now can someone explain that to me?

Update: I made my code more like what it really is.

Update 2: Since the example code I gave doesn't seem to be the problem, here's a link to all the code: http://test.startailpro.co.uk/breaking/

The functions are update, updateDirection, hitBlock, doesBall_hitBlock, MEMORY.deep and MEMORY.rise.

1 answers

0

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

Память выделяется

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