Показать сообщение отдельно
  #13 (permalink)  
Старый 14.12.2011, 04:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Внимание, тест сожрет много памяти...
alert( "перед запуском посмотри запомним занимаемое количество памяти браузером" );

var a = [];
for( var i = 0; i < 20000; i++ ) {
    a[ i ] = [];
    for( var j = 0; j < 1000; j++ ) {
        a[ i ][ j ] = "blah";
    }
}

alert( "теперь смотри сколько заняло" );
a = null;
alert( "а теперь должно освободиться место в памяти" );
alert( "пробуем другой пример" );

var b = [];
for( var i = 0; i < 20000; i++ ) {
    b[ i ] = [];
    for( var j = 0; j < 1000; j++ ) {
        b[ i ][ j ] = "blah";
    }
}

alert( "запомнил?" );
delete window.b;
alert( "а теперь должно освободиться место в памяти" );
Вывод, сборщик не всегда срабатывает после уничтожения объектов... то есть память может быть не освобождена перед использованием нового объекта. а сборщик мусора сделает свое дело тогда когда захочет.. Тоесть что null что delete не всегда эффективно... все зависит от интервала сборки мусора сборщиком. Тестил на Opera 11.60 как будет в других не смотрел.

Последний раз редактировалось devote, 14.12.2011 в 11:29.
Ответить с цитированием