четверг, 29 марта 2012 г.

Утечки памяти в js

Тестирование различных браузеров:
ie8,
opera,
chrome,
firefox.

Инициалицируем в цикле массив:

var count = 10000;

function leak(){
    var arr = [],
        max = 1000000;

    // заполняем массив
    for( var i=0; i<max; ++i){
        arr[i] = i;
    }

    count--;

    if(count > 0)
    {
        // запускаем через равные промежутки времени
        setTimeout(arguments.callee, 100);
    }
}

leak();


Internet explorer 8 при запуске этого кода несколько раз спрашивает, остановить ли исполнение javascript на странице, отвечаю "нет".


Через некоторое, совсем небольшое время эксплорер выдает ошибку: Недостаточно памяти.




В остальных браузерах нет такого резкого скачка в потреблении памяти и держится примерно на одном уровне:
firefox, opera ~ 80 МБ.
chrome ~ 50 МБ.

четверг, 15 марта 2012 г.

Флешка Kingmax datatraveler 100 G2 8GB

Купил я недавно флешку, и естественно решил её потестить.

Вставляю в комп, определяется, появляется новый диск, все нормально.
Копирую на нее файлы, 3 штуки по 2,5 ГБ.
Первый - скорость 20 МБ./с., "круто" - думаю. Старая флешка (adata) у меня записывалась со скоростью 6,5 МБ./с.
Второй файл - скорость 7 МБ./с., тоже неплохо.
Третий фэйл - скорость 1,7 МБ./с., фу-у-у фигня какая!

Потом, после того как несколько раз записал-стер файлы, скорость выровнялась, стала равной ~3 МБ./с.
Видимо там используются 2 микросхемы, быстрая в начале и медленная в конце адресного пространства, что видно на новой флешке. А после нескольких циклов записи контроллер перераспределяет ячейки случайным  образом и скорость выравнивается.

Пробовал форматировать с разным размером кластера, разница в скорости для больших файлов совсем небольшая. Остановился на размере кластера 4кБ.

После почитал отзывы в интернете и для себя решил больше не брать флешки этого производителя.