none
Утечка ОЗУ из-за программы ReadyBoost

    Вопрос

  • Недавно я наткнулся на статью о том, как увеличить производительность системы Windows Vista путём кэширования файлов через Flash-карту программой ReadyBoost. Я попробовал сделать по инструкции; всё получилось, но особого эффекта это не дало. Я прекратил работу программы ReadyBoost на своей Flash-карте, но после этого оперативная память компьютера как будто уменьшилась. В некоторых приложениях Vista пишет: "Недостаточно памяти для работы программы, рекомендуется закрыть приложение" (уже во время работы приложения, не при её запуске). В чём проблема? Как заставить компьютер по максимуму использовать оперативную память?
    20 апреля 2008 г. 4:46

Ответы

  • Вообще то так и есть - те кто написал ОС лучше знают как она работает. Однако никто в мире не знает всех деталей работы современной ОС.

     

    Утечки памяти это вполне опеределенная ошибка когда пямять выделяется но не освобождается. Она может быть где угодно, обычно в тех самых приложениих которые перестают работать. Скорее всего ни ReadyBoost ни Superfetch не имеют к этому ни малейшего отношения. Если бы память текла в самой ОС то эти приложения после вылета больше не запускались бы поскольку память утека в ОС и она не будет освобожедна до перезапуска ОС. Если же память течет в самом приложении то после его остановки она будет освобождена и приложение будет работать снова. Проверить очень просто: смотреть в таск манаджере на размер памяти затребованный этим приложением, если он постоянно растет то в нем есть ошибка утечки памяти.

     

    Есть шанс что никакой утечки и нет, просто приложение требует слишком много памяти. Например многие совеременные игры часто вылезают за пределы 2GB виртуального адресного пространства - ограничение 32 битных приложений. Даже если в системе будет 100 ГБ свободной памяти все равно больше 2 ГБ 32 битное приложение получить не сможет (до 3ГБ если приложение сделано с поддержкой данного режима и ОС так же работает в таком режиме).

     

    Еще вариант - недостаточный размер файла подкачки. Отдельные товарищи считают что раз у них есть аж 2 ГБ (а  может даже и 4) памяти то файл подкачки уже и не нужен, стало быть его можно отключить или уменьшить. Ничего подобного, если это сделать то память кончится очень быстро. Рекомендую установить размер файла подкачки в 2-3х размер памяти.

     

    Далее, СуперФетч и РеадиБуст это отдельные сервисы и если очень хочется их нетрудно отключить без всяких твикеров. (от которых любой пользователь в здравом уме должен держатся как можно дальше). Для того чтоб это сделать надо выполнить "%windir%\System32\services.msc", после чего запретить "нежелательные" сервисы.

     

    20 апреля 2008 г. 18:09
    Модератор

Все ответы

  •  Наумов М. И. написано:
    Недавно я наткнулся на статью о том, как увеличить производительность системы Windows Vista путём кэширования файлов через Flash-карту программой ReadyBoost. Я попробовал сделать по инструкции; всё получилось, но особого эффекта это не дало. Я прекратил работу программы ReadyBoost на своей Flash-карте, но после этого оперативная память компьютера как будто уменьшилась. В некоторых приложениях Vista пишет: "Недостаточно памяти для работы программы, рекомендуется закрыть приложение" (уже во время работы приложения, не при её запуске). В чём проблема? Как заставить компьютер по максимуму использовать оперативную память?

     

    похоже это результат работы нескольких технологий Vista включая readyboost и superfetch. нехорошесть этой работы состоит в том что программисты писавшие Vista глубоко уверены что они лучше знают зачем пользователю оперативная память.

     

    проблема утечки памяти частично реашется ПОЛНЫМ отключением readyboost и всех видов prefetch в реестре Vista - об этом немало в интернете написано и даже есть твикеры которые позволяют это делать. воспользовавшись этим можно высвободить до половины памяти - остальная к сожалению всё равно куда-то исчезает.

     

    специалисты майкрософт по этому вопросу отвечают весьма просто - вот смысл ответов:

    "а зачем мол вам отключать readyboost и prefetch и освобождать память? сидите и заткнитесь. мы лучше знаем как работает Vista."

     

    я так понимаю что в результате такой работы многие компании будут вынуждены отказаться от программных продуктов которые "лучше знают что нужно пользователю"

     

    если я нанял сотрудника и не знаю в каждый момент времени чем он занят плюс ко всему сотрудник выполняет каки-то свои ненужные мне действия - я его уволю - если я плачу за Vista лицензию N сотен американских рублей и при этом как работает ПО мне никто не в состоянии объяснить и ПО выполняет абсолютно не нужные мне операции - я выброшу это ПО на помойку или верну разработчику.

    20 апреля 2008 г. 11:11
  •  ru7stranger написано:

    специалисты майкрософт по этому вопросу отвечают весьма просто - вот смысл ответов:

    "а зачем мол вам отключать readyboost и prefetch и освобождать память? сидите и заткнитесь. мы лучше знаем как работает Vista."

    Подтвердите, пожалуйста, ваши слова! 

     

     ru7stranger написано:

    если я нанял сотрудника и не знаю в каждый момент времени чем он занят плюс ко всему сотрудник выполняет каки-то свои ненужные мне действия - я его уволю - если я плачу за Vista лицензию N сотен американских рублей и при этом как работает ПО мне никто не в состоянии объяснить и ПО выполняет абсолютно не нужные мне операции - я выброшу это ПО на помойку или верну разработчику.

    Выбросили? Вернули?

    20 апреля 2008 г. 11:52
  • Вообще то так и есть - те кто написал ОС лучше знают как она работает. Однако никто в мире не знает всех деталей работы современной ОС.

     

    Утечки памяти это вполне опеределенная ошибка когда пямять выделяется но не освобождается. Она может быть где угодно, обычно в тех самых приложениих которые перестают работать. Скорее всего ни ReadyBoost ни Superfetch не имеют к этому ни малейшего отношения. Если бы память текла в самой ОС то эти приложения после вылета больше не запускались бы поскольку память утека в ОС и она не будет освобожедна до перезапуска ОС. Если же память течет в самом приложении то после его остановки она будет освобождена и приложение будет работать снова. Проверить очень просто: смотреть в таск манаджере на размер памяти затребованный этим приложением, если он постоянно растет то в нем есть ошибка утечки памяти.

     

    Есть шанс что никакой утечки и нет, просто приложение требует слишком много памяти. Например многие совеременные игры часто вылезают за пределы 2GB виртуального адресного пространства - ограничение 32 битных приложений. Даже если в системе будет 100 ГБ свободной памяти все равно больше 2 ГБ 32 битное приложение получить не сможет (до 3ГБ если приложение сделано с поддержкой данного режима и ОС так же работает в таком режиме).

     

    Еще вариант - недостаточный размер файла подкачки. Отдельные товарищи считают что раз у них есть аж 2 ГБ (а  может даже и 4) памяти то файл подкачки уже и не нужен, стало быть его можно отключить или уменьшить. Ничего подобного, если это сделать то память кончится очень быстро. Рекомендую установить размер файла подкачки в 2-3х размер памяти.

     

    Далее, СуперФетч и РеадиБуст это отдельные сервисы и если очень хочется их нетрудно отключить без всяких твикеров. (от которых любой пользователь в здравом уме должен держатся как можно дальше). Для того чтоб это сделать надо выполнить "%windir%\System32\services.msc", после чего запретить "нежелательные" сервисы.

     

    20 апреля 2008 г. 18:09
    Модератор