История изменений
Исправление Black_Roland, (текущая версия) :
Вообще неправильный тест. На создание свойств объекта тоже тратится память. Знаю что при использовании delete ссылки очищаются не всегда, но воспроизвести не получается.
Так думаю правильнее:
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
var a = { one: 'one', two: 'two' };
var b = [];
var i;
for (i = 10000000; i > 0; i--) {
b[i] = null;
}
var go = function() {
for (i = 10000000; i > 0; i--) {
b[i] = a;
}
alert('Done!');
}
</script>
<button onclick="go()">Go!</button>
</body>
</html>
null
, потом заменяю значения на ссылки на a
. В итоге 78.9МБ до и 79.0МБ после нажатия «Go!». http://storage5.static.itmages.com/i/14/1025/h_1414239480_9878626_4764bc283e.png (в конце я GC запустил)Исходная версия Black_Roland, :
Вообще неправильный тест. На создание свойств объекта тоже тратится память. Знаю что при использовании delete ссылки очищаются не всегда, но воспроизвести не получается.
Так думаю правильнее:
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
var a = { one: 'one', two: 'two' };
var b = [];
var i;
for (i = 10000000; i > 0; i--) {
b[i] = null;
}
var go = function() {
for (i = 10000000; i > 0; i--) {
b[i] = a;
}
alert('Done!');
}
</script>
<button onclick="go()">Go!</button>
</body>
</html>
null
, потом заменяю значения на ссылки на a
. В итоге 78.9МБ до и 79.0МБ после нажатия «Go!». http://storage5.static.itmages.com/i/14/1025/h_1414239480_9878626_4764bc283e.png