Что на самом деле делает FreeMemory?

13

В Mac App Store есть приложение с высоким рейтингом, которое называется FreeMemory . Он утверждает, что может «увеличить вашу свободную память простым щелчком мыши». Хотя сейчас это бесплатно, я считаю, что обычно это стоит 99 центов.

Как ученый-компьютерщик, моя интуиция о приложении заключается в том, что это почти наверняка змеиное масло; в современной операционной системе все, что может сделать приложение, в лучшем случае было бы ненужным, а в худшем - вредным для производительности.

Мое лучшее предположение состоит в том, что приложение, вероятно, делает что-то, чтобы заставить систему выгружать «неактивную» память, что, вероятно, никак не влияет на производительность. Тем не менее, очень мало информации о приложении, и я не хочу устанавливать его на моем компьютере. Я также не так хорошо знаком с OS X, как с Linux и Windows, поэтому я могу ошибаться в том, как OS X обрабатывает оперативную память.

Мои вопросы:

  • Что именно делает FreeMemory и как этого добиться? Существует ли какой-либо общедоступный API, который может предоставлять программам пользовательского пространства доступ к параметрам управления памятью операционной системы?
  • Может ли использование FreeMemory действительно повысить производительность, или это, как я подозреваю, змеиное масло?
Митч Линдгрен
источник
3
Отличный вопрос! Одна из моих самых любимых мозолей - не только распространение FUD, но и использование его, чтобы обманывать людей из их с трудом заработанных денег!
Спасибо за все продуманные ответы. На самом деле я установил «Свободную память» на свой MBP, потому что казалось, что он действительно застрял при переключении между приложениями. С установленным приложением FM оно на самом деле не лучше, и есть дополнительное раздражение, что, поскольку приложение «освобождает память», ничего больше не работает, ... вообще ... в течение 45 секунд или около того. Я не думаю, что мой MPB под управлением OS X6.8 действительно хорошо справляется со своей собственной памятью, но это приложение, похоже, ничего не помогает.

Ответы:

12

Абсолютно ничего, кроме мошенничества людей из их денег. Не спрашивайте меня, почему Apple это одобрила. iOS и OS X управляют памятью по мере необходимости. Много FUD там утверждают, что это плохо в этом. Нет доказательств в поддержку этих утверждений. Факты не представлены. Никто с небольшим опытом или образованием в этой области никогда не подходил (что я видел) и не аккредитовал требования. Змеиное масло.

Вы хотите улучшить производительность? Купи лучшее устройство. Только лучшее оборудование может приравнять к лучшей производительности. Конечно, вы можете оптимизировать систему, но это не делает этого, а только сдвигает доступную память.

Вот разбивка того, как понять управление памятью в OS X ( любезно предоставлено Apple ):

Свободная память

Это оперативная память, которая не используется.

Проводная память

Информация в этой памяти не может быть перемещена на жесткий диск, поэтому она должна оставаться в оперативной памяти. Объем проводной памяти зависит от приложений, которые вы используете.

Активная память

Эта информация в настоящее время хранится в памяти и недавно использовалась.

Неактивная память

Эта информация в памяти активно не используется, но недавно использовалась.

Например, если вы используете Почту, а затем выходите из нее, ОЗУ, которое использовала Почта, помечается как Неактивная память. Эта неактивная память доступна для использования другим приложением, так же как и Свободная память. Однако если вы откроете Mail до того, как его неактивная память будет использоваться другим приложением, Mail откроется быстрее, потому что ее неактивная память преобразуется в активную память вместо загрузки почты с более медленного жесткого диска.

Теперь, даже имея элементарное представление об управлении памятью в операционной системе Apple, скажите, если вы думаете, что «освобождение» неактивной памяти имеет какое-то значение? Это доступно любому приложению, которое запрашивает это, и если то же самое приложение хочет захватить это снова, это получает повышение скорости. Конечно, это не так просто, но уничтожение неактивной памяти и ее перемещение в свободную память не приводит к увеличению производительности. В конце концов, как это могло? Хорошая система должна накапливать всю вашу память и распределять ее по вещам, которые в ней нуждаются. Свободная память тратится впустую, поскольку по определению она не используется. Если у вас 8 ГБ ОЗУ и все время свободно 4 ГБ, значит, у вас есть система с 4 ГБ.

Неактивная память в OS X выделяется разумно. Я поменяю мелодию, когда увижу действительные и надежные данные, которые утверждают обратное. И, честно говоря, если не что иное, как вы думаете, какое-нибудь стороннее приложение нашло святой Грааль управления памятью, которое все это время ускользало от инженеров мирового класса (не говоря уже о тысячах программистов UNIX с открытым исходным кодом)? Как я уже сказал, змеиное масло.


источник
Обратите внимание, что приложение специально для OS X, а не для iOS, но мне нравится ответ.
Николас Смит
@NicholasSmith iOS управляет памятью почти так же, как и OS X. Его файловая структура также идентична, как и архитектура ядра. Для таких низкоуровневых функций можно говорить о взаимозаменяемости iOS и OS X (очевидно, iOS настроена для работы на арке ARM7, но для наших целей и задач нам не нужно об этом беспокоиться), но это не по теме, и я отредактировал мой ответ, чтобы лучше сосредоточиться на вопросе ОП. Благодарю. Не знаю, почему я туда встроил iOS ... должен научиться читать лучше.
Сходство в том, почему мне это понравилось, вы можете увидеть, как OS X легче справляется в условиях ограниченной памяти через iOS.
Николас Смит
@NicholasSmith - это хороший момент, и он должен добавить дополнительную поддержку, что все эти приложения для управления памятью (iOS и OS X) абсолютно ничего не делают (позор Apple одобряет; по крайней мере, они кажутся «нечестными»).
Почему мой Mac предпочел бы поменяться местами, как сумасшедший, даже если у меня более 40% моей памяти как «неактивной»
Александр - восстановите Монику
6

Установленные и протестированные, они запускают команду очистки и освобождают неактивную память. Это не 100% змеиный жир, могут быть ситуации, когда OS X не выпускает должным образом неактивное и начинает попадать в файл подкачки на диске (влечет за собой снижение производительности ввода / вывода), но это довольно бесполезно для большинства пользователей.

Хотя, если они зарабатывают $ 0,99 за перенос команды в строку меню, мне действительно нужно получить лицензию для Mac Developer.

Николас Смит
источник