Место для Вашей рекламы всего за 400 рублей в месяц ! email:incognito.anonimous@yandex.ru

Спонсор проекта
Лучший вариант для анонимности купить прокси на выделенном сервере IPANN.NET.
Ads



Последние комментарии
#1
Александр пишет: » Про себя расскажу, купил первый свой дистрибутив L... (13.02.2020)
// Переход с Windows на Linux - ГЛУПОСТЬ
#2
admin пишет: » Александр, я перепробовал немало конвертеров под л... (02.02.2020)
// 28 причин почему GNU/Linux не имеет будущего
#3
Александр пишет: » Всё верно, к примеру мне не хватает конвертера ауд... (01.02.2020)
// 28 причин почему GNU/Linux не имеет будущего
#4
admin пишет: » Ну и где это ваше будущее ? Уже прошёл четвёртый г... (29.01.2020)
// 28 причин почему GNU/Linux не имеет будущего
#5
admin пишет: » иван, аргументы давай (28.01.2020)
// 28 причин почему GNU/Linux не имеет будущего
#6
watersoda пишет: » А с другой стороны, какой смысл в МСВС 5.0, когда ... (12.11.2017)
// Обзор и попытка установки МСВС 5.0
#7
X_perienced пишет: » А какое именно оборудование там подерживается - го... (25.08.2017)
// Обзор и попытка установки МСВС 5.0
#8
Linups_Troolvalds пишет: » Хватит писать бред. МСВС (возможно) не работает на... (24.07.2017)
// Обзор и попытка установки МСВС 5.0
#9
watersoda пишет: » Да и RHEL под "Эльбрус" не помешал бы... (19.03.2017)
// Обзор и попытка установки МСВС 5.0
#10
watersoda пишет: » Небольшая поправка: ... через соответствующий паке... (19.03.2017)
// Обзор и попытка установки МСВС 5.0
Quotes
При запуске в Ubuntu экрана, где надо залогиниться, звук музыкального инструмента, похожего на бубен заставил задуматься...

Использование памяти в Windows Vista/7 | автор: dimitrio1 | 28 апреля 2010

Категория: Microsoft


По мотивам статьи Руссиновича.
В интернете мне доводилось слышать множество гневных комментариев в стиле «Да Windows 7 — полный отстой! Вы посмотрите, как она жрет память!» В доказательство приводятся скриншоты вроде того, что ниже, и опять же — все списывается на «криворуких индусских программистов». Давайте посмотрим, насколько эти наезды на программистов Microsoft обоснованы.

Допустим, вы приобрели компьютер с 8 гигабайтами памяти. Но неужели то, что используется от силы 1 гигабайт, а вся остальная память простаивает — так уж хорошо? С выходом Windows Vista и Windows 7 подход к использованию оперативной памяти кардинально поменялся: теперь ОС пытается использовать всю имеющуюся память максимально эффективно. В частности, в Windows Vista и Windows 7 появилась фича с названием SuperFetch.


https//habreffect.ru/files/792/e40c602e5/taskamn.jpg
Что же такое SuperFetch?
SuperFetch — это системный сервис, запускающийся внутри системного процесса svchost. Код его находится внутри DLL-ки %SystemRoot%\System32\Sysmain.dll. Этот сервис постоянно следит за тем, какие приложения запускает пользователь, и к каким исполняемым файлам и файлам данных они обращаются. Вся эта информация сохраняется в файлах с расширением *.db в каталоге %SystemRoot%\Prefetch. Для чего это все делается? А вот для чего: сервис SuperFetch, имея информацию о том, с какими приложениями пользователь работает наиболее часто — заранее подгружает в память соответствующий код и данные, и, когда пользователь запускает свое приложение — вся необходимая информация уже имеется в памяти, и запуск происходит намного быстрее — потому как нет необходимости считывать информацию с жесткого диска. Особенно это заметно на таких «тяжелых» приложениях, как семейство MS Office, функционал которых может быть «размазан» по десяткам и сотням exe-шников и dll-ок. SuperFetch настолько «умна», что может даже определять предпочтения пользователя в разные дни и время суток — например, то, что в рабочие дни он работает с Word и Excel, а по выходным — играется в Call of Duty, и, соответственно — подгружает в память нужные данные. Соответственно, эта область памяти помечается как «занятая», что и отображается в Task Manager'e, создавая впечатление «утечек памяти». Тем не менее, если вдруг запускается какое-то приложение, требующее выделения памяти — memory manager спокойно освобождает нужное пространство, а по завершении работы приложения память освобождается и данные подгружаются снова.

Если же какое-нибудь приложение, к примеру, завершает свою работу и освобождает память — то SuperFetch обращается к менеджеру памяти с просьбой подгрузить только что выгруженный код и даннные. Процесс этот происходит с маленькой скоростью и с низшим (Very Low) приоритетом, поэтому работа SuperFetch не приводит к падению производительности. Если вы, к примеру, отойдете покурить, а в это время запустится фоновый процесс, которому необходима память (например — антивирусная проверка), то код и данные приложения, с которым вы работали — возможно будут выгружены из памяти. Благодаря же SuperFetch — к тому моменту, когда вы вернетесь с перекура — данные вашего активного приложения будут полностью или частично подгружены обратно в память.

Более того, SuperFetch может обрабатывать режимы гибернации, «спящий режим» и смены пользователя (fast user switching). К примеру, если система уходит в гибернацию — то SuperFetch сохраняет в файл hiberfil.sys код и данные тех приложений, которые, по его мнению, скорее всего будут использоваться после выхода из гибернации. Как это «мнение» формируется? Очень просто — Большой БратSuperFetch смотрит за тобой, и за тем, что ты запускал после выхода из предыдущих гибернаций, и основываясь на этом — может предположить, что в следующий раз при выходе из гибернации ты наверняка запустишь «аську» и откроешь свой любимый браузер, чтобы почитать «хабрахабр». Ну а через часок-другой — откроешь Visual Studio, потому что проект горит, а сроки сдачи — «вчера».

Можно понаблюдать за работой SuperFetch с помощью того же Task Manager'a:

https//habreffect.ru/files/ec4/19404f2/cc1620.figa_Len-us.gif

Если какое-то время поюзать Windows Vista/7, то можно заметить, что объем свободной памяти уменьшается. Это происходит из-за того, что SuperFetch стандартный систмный кэш Windows пытаются утилизировать доступную память для кэширования данных с диска. К примеру, если сразу после загрузки Windows запустить Task Manager — видно, что Free Memory — уменьшается, а Cached Memory — наоборот увеличивается. Если же запустить какую-нибудь «жадную до памяти» программу, или же просто запустить копирование большого файла — Free Memory увеличится и график «Physical Memory Usage» резко упадет, потому что система будет освобождать память для запущенного приложения, но потом начнет потихоньку расти — потому что собственно приложение начнет эту память забирать. Однако, со временем SuperFetch будет подгружать в память недавно выгруженные данные, поэтому значение Cached Memory будет расти, а Free Memory — уменьшаться.

Источник

Уважаемые господа, разбирающиеся в принципах работы линуксового preload прокомментируйте статью, пожалуйста.


Голосов: 16


Прочитано 3449 раз и оставлено 14 комментариев.


Комментарии посетителей
Я ReadyBoost использую в дополнение, с небольшими файлами действительно шустрее ноут работает

#2. SmileSRG

А вот Линупс так может?

#3. petrun

SmileSRG,
preload.Правда планировщик придется прикрутить отдельно.Но так ли он нужен?
дохтур
preload лишь загоняет данные в дисковый кеш наподобие классического Prefetch в winxp. SuperFetch же создаёт уже готовые образы для выполнения с уже проделанной рандомизацией/линковкой требуемых dll в адресное пространство процесса, к примеру, что реально ускоряет запуск программ с кучей зависимостей и т.д. Аналогичной функциональности в линуксе нет и не предвидится.

#5. petrun

дохтур написал:
SuperFetch же создаёт уже готовые образы для выполнения с уже проделанной рандомизацией/линковкой требуемых dll в адресное пространство процесса, к примеру, что реально ускоряет запуск программ с кучей зависимостей и т.д.

Для этого есть prelink.Да и узкий момент - чтение с диска.
Хотя линуксовй ld несколько тормозной, нельзя не признать.
дохтур
petrun написал:
Для этого есть prelink.
работает непрозрачно в отличии от, т.к требует модификации исполняемых файлов и библиотек, требутет форсированного перезапуска после обновления каждого обслуживаемого файла
petrun написал:
ld несколько тормозной
это очень мягко сказано

#7. petrun

дохтур написал:
требутет форсированного перезапуска после обновления каждого обслуживаемого файла

А в линукс это не проблема.Ибо пакетный менеджер.
дохтур
petrun написал:
А в линукс это не проблема.Ибо пакетный менеджер.
Конечно, модифицировать 1000 и 1 бинарник после обновления какой-нить 50-килобайтной библиотеки это не проблема, а необходимое условие, без которого оно попросту работать не будет. Плюс ко всему вагон и маленькая тележка сопутствующих радостей:
https://bugzilla.redhat.com/show_bug.cgi?id=202256
https://bugs.launchpad.net/ubuntu/+source/prelink/+bug/31135
http://www.mail-archive.com/debian-powerpc@lists.debian.org/msg43276.html и т.д.
Вообщем, сначала до ума доведите, чтобы оно хотя бы системные библиотеки не портило
дохтур
Забавная, между делом, штучка - эдакий легализованный патчер, пытающийся за счёт приложений на бинарном(!) уровне компенсировать архитектурные недоработки open-source(!!) системы

#10. petrun

дохтур написал:
Вообщем, сначала до ума доведите, чтобы оно хотя бы системные библиотеки не портило

На даты гляньте, ага?
дохтур написал:
компенсировать архитектурные недоработки

Ну и где тут недоработка?Лучше на бинарном уровне, чем в рантайме каждый раз.
дохтур написал:
Конечно, модифицировать 1000 и 1 бинарник после обновления какой-нить 50-килобайтной библиотеки это не проблема, а необходимое условие, без которого оно попросту работать не будет.

У каждого подхода свои недостаки.Но лично у меня на машине полный prelink отрабатывает где-то за минуту.Не так страшно.
А что на бинарном уровне, так в линуксе это очень легко.В отличии от.
дохтур
petrun написал:
На даты гляньте, ага?
да можно и посвежее найти, причём с довольно долгой историей, берущей начало наверное со времён создания этой утилиты https://bugs.launchpad.net/debian/+source/openoffice.org/+bug/8318
особенно полезны советы, даваемые в большинстве случаев: "отключите prelink"
petrun написал:
Ну и где тут недоработка? Лучше на бинарном уровне, чем в рантайме каждый раз
Ну во-первых, SuperFetch рабочего времени не отнимает, во вторых - работает прозрачно для всех бинарников, в т.ч. для пользовательских, в третьих, не нарушает бинарной целосности системы, кстати наверное именно поэтому prelink официально не поддерживается и никогда не будет поддерживаться линуксовыми пакетными менеджерами, что автоматически делает его geek-only - что и подтверждается на практике
petrun написал:
А что на бинарном уровне, так в линуксе это очень легко.В отличии от.
Конечно, windows не даст модифицировать системные библиотеки непонятной программе для непонятных целей, - и это правильно

#12. daemonpnz

Ага, а сразу после установки она с чего бы вдруг жрет памяти?
дохтур
daemonpnz написал:
Ага, а сразу после установки она с чего бы вдруг жрет памяти?
Т.е. забирает и приложения жалуются на нехватку памяти? Вам жалко, что система занимает неиспользуемую в данный момент память, чтобы ускорять запуск приложений? Или просто хочется видеть красивые цифры в диспетчере?
Сколько по дефолту будет занимать W7 памяти если выгрузить процесс SuperFetch?
Каков мин. порог памяти когда W7 использовать будет неэффективно в пользу ХР или Linux?

Добавление комментария:

Имя:
Пароль: (если зарегистрирован)
Email: (обязательно!)

теги форматирования

добавить смайлы
 

Правила комментирования >>