Не е тайна, че Firefox може да консумира съвсем малко системна памет при нормална употреба. Докато броят отворени раздели и инсталираните добавки със сигурност допринасят, дори консервативно използваната от кутията инсталация може да докладва доста малко използване на паметта.
Това е причинило няколко Firefox добавки към повърхността, които твърдят, че освобождават паметта, която браузърът вече не се нуждае, но всъщност работят ли?
Преди да се впуснем в проучването на памет чисти, е важно да се разбере малко за начина, по който Windows обработва паметта. Това ще бъде важно, за да можем да интерпретираме резултатите от нашия експеримент.
Не се притеснявайте, ние ще покрием това на много високо ниво, така че не е нужно да бъдете мега-онзи, който да следвате.
Като бърз отказ от отговорност, това е изключително кратко обобщение на основите на управлението на паметта на Windows. В никакъв случай това не трябва да се счита за авторитетно или окончателно, тъй като се обяснява само до ниво, приложимо към предмета на тази статия.
Windows е достатъчно умен, за да разбере, че неизползваната физическа памет е загубена памет, затова тя зарежда всичко, от което се нуждае, и мисли, че ще се нуждае от памет. Обаче само това, което действително се нуждае от вашата система (Windows и приложения) и активно се използва в текущото време, се отчита като използвана физическа памет. Останалото (което Windows смята, че ще се нуждае) се намира в така наречената виртуална памет.
Виртуалната памет е по същество данните, които не се изискват активно от операционната система, но са готови да бъдат заредени в активна памет по всяко време. Можете много грубо да изчислите размера на виртуалната памет, която вашата система има във всеки един момент, като използвате тази формула:
Виртуална памет = (Обща физическа памет - използвана / активна физическа памет) + Максимален размер на файла на системната страница
Предполагам, че имате система с 4 GB физическа памет и 6 GB максимален файл на страницата. След това стартирате Windows и отваряте няколко приложения (Outlook, Firefox и т.н.), а Windows съобщава, че се използва 2.5 GB физическа памет. Това означава, че имате 1,5 GB "неизползвана" физическа памет и 6 GB страници за общо 7,5 GB налична виртуална памет.
Не забравяйте, че операционната система е достатъчно интелигентна, за да разбере, че неизползваната физическа памет е загуба на памет, така че тя ще запълни останалата част от 1.5 физическа памет с това, което очаква, че ще ви трябва, така че да може да се достигне при поискване почти моментално. Това може да бъде всичко от минимизирани данни за фона на програми до общи функции на операционната система.
И така, какво се случва, когато Windows изтече от физическата памет, за да се използва като виртуална памет? Той пише тези данни в системния файл, който е огромен (в нашия случай 6 GB) файл на вашия твърд диск. Макар че това позволява на операционната система да съхранява почти всякакви данни, необходими за запазване в паметта, писане и извличане (известна още като грешка на страница), тази информация към / от твърдия диск е с порядък по-бавен от достъпа до него от физическата памет. Ето защо, колкото по-голяма физическа памет имате, толкова по-бързо може да работи вашата система. Колкото по-малко системата ви използва файла на страницата, толкова по-бързо ще изпълнява.
За нашето разследване ще използваме Windows Task Manager. Ние ще проследяваме следните колони (описанията са дефинирани на страницата на Microsoft):
Ще използваме инсталирането на Firefox 4.0.1 извън пакета, като се зарежда само добавката Memory Fox. В Firefox ще отворим следните раздели и няма да направим нищо друго освен превъртане нагоре и надолу на заредените страници.
След като изчакате няколко минути, за да приключи зареждането на всичко, Windows Task Manager отчита следното за Firefox.
Сега, когато стартираме добавката Memory Fox, погледнете драматичния спад в количеството на използваната памет.
Също така имайте предвид, че от тази добавка се стартира нов процес, който се занимава с функциите на паметта.
Оставяйки Firefox на празен ход и гледайки работните стойности и стойностите на паметта, можете да видите, че има постоянна борба между Firefox, който се нуждае от активна физическа памет, и добавката за почистване на паметта, която възстановява тази памет.
Ето споменатата употреба на паметта, която се използва на всеки няколко секунди, докато Firefox е оставен на празен ход.
Обърнете внимание на спада в стойностите на работния комплект и паметта. Това е почистване на паметта, което възстановява системната памет.
След като се качвате малко, можете да видите още една капка.
Lather. Изплакнете. Повторете.
Освен това, ако не правите нищо, освен да превключвате разделите и да превъртате нагоре и надолу заредените страници, можете да видите цифрите да се колебаят малко по-драстично, което ще бъде обяснено по-долу.
Когато го погледнете за пръв път, бихте помислили, че това е чудесно. Но погледнете колоната Commit Size и можете да видите, че тази стойност никога не се променя. Всъщност се увеличава, след като стартирате добавката за почистване на паметта.
Не забравяйте, че в графата Commit Size се отчита действителното количество памет (физическа + виртуална), която Windows трябва да изпълни съответното приложение. Така че в нашия пример ~ 120 МБ е резервиран и активен в системата специално за Firefox и се намира в неизползвана физическа памет и / или системния файл на страницата. Също така не забравяйте, че ако файлът на страницата трябва да се използва, има забележимо въздействие върху производителността, защото виртуалната памет трябва да бъде написана и четена от твърдия диск, която е значително по-бавна от физическата памет.
Така че по същество почистващият памет движи активната физическа памет във виртуална памет (защото паметта е възстановена трябва да отиде някъде). Когато това се случи, Firefox вече няма паметта, от която се нуждае, за да работи активно, така че трябва да поиска от Windows да премести съответните данни от виртуалната памет обратно във физическата памет. И наоколо и навсякъде ...
В най-добрия случай този процес не прави нищо полезно и в най-лошия случай причинява огромно количество ненужни грешки на страница, защото отново, ако Windows трябва да донесе файла на страницата в игра, тогава ще има забележим хит на изпълнението. Това може да се случи особено при система, която не разполага с много физическа памет (където почти цялата виртуална памет се съхранява в файл на страница), което е иронично, защото това са системите, чийто "чист" памет е "проектиран".
Моралът на цялата тази история е съвсем просто, чистачите на паметта не правят нищо, освен да се преместят около номера. Всяка операционна система ще знае как да се справи с паметта по подходящ начин, така че просто нека да вършат работата си.
Тъй като ние показахме, че добавките за почистване на паметта наистина не правят нищо полезно, какво можете да направите за огромното количество памет, използвана от Firefox? Ето няколко предложения:
Memory Fox Следваща добавка за Firefox