Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // a garbage collector valami heurisztika szerint fut le a js-ben, de te tudod forcolni
- // ha igy inditod a kodot: node --expose-gc file.js
- /*
- Minden kiiratas elott lefuttatjuk a GC-t, hogy csak a tiszta Heap-et lassuk MB-ban
- */
- function getHeapMb() {
- global.gc();
- return Math.round(process.memoryUsage().heapUsed * 10 / 1024 /1024)/10 + 'MB';
- }
- /*
- ==================================== 1. ==============================
- Az elso peldaban 1 object van, parameterben adom at a rec fuggvenynek
- Itt az obj az mindig ugyanarra az objectre fog mutatni, a heapen nem jon letre uj
- */
- console.log('#1 - recursive start: ', getHeapMb());
- function rec(i, obj) {
- obj.counter = i;
- if(i===0) {
- console.log('#2 - recursive break: ', getHeapMb());
- return;
- }
- rec(--i, obj);
- }
- const obj = {};
- rec(8000, obj);
- console.log('#1 - recursive end: ', getHeapMb());
- console.log('');
- /*
- ==================================== 2. ==============================
- Az masodik peldaban az objectet mindig a recurziv fuggvenyben hozom letre
- Minden letrehozaskor uj memoria foglalodik le a heapen, amit a garbage NEM fog felszabaditani
- */
- console.log('#2 - recursive start: ', getHeapMb());
- function rec2(i, obj) {
- obj = { counter: i };
- if(i===0) {
- console.log('#2 - recursive break: ', getHeapMb());
- return;
- }
- rec2(--i, obj);
- }
- const obj2 = {};
- rec2(8000, obj2);
- console.log('#2 - recursive end: ', getHeapMb());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement