Как стать автором
Обновить

Комментарии 11

Если мы знаем, что течёт, то это уже не утечка?

Вы, кажется, не понимаете значение слова "утечка". Утекшая память – это память, которую не освободили корректно, и она теперь не будет выгружена никогда. Если я включил фильм, и фильм занял место в памяти, из-за чего потребление памяти приложения "проигрыватель" резко возросло – это не утечка. Даже если я, о ужас, продолжаю хранить часть кусков, которые пользователь уже посмотрел (для быстрой перемотки назад). Надо будет – выгружу из памяти. В macOS/iOS для этого предусмотрены специальные механизмы. Как только память понадобится – finder должен будет её освободить. Потому что таки да, «Эффективное управление памятью — важный аспект написания высокопроизводительного кода как в OS X, так и в iOS». Эффективное – это не значит всю память пустой держать, это как раз неэффективное. Эффективное – это забивать память по максимуму всем, что может улучшить производительность для пользователя, но при этом при необходимости освобождать её под более важные вещи.

Так что да, by design. Именно что by design.

То, что они делают это осознанно это значит, что баг не в коде, а в архитектуре приложения, да и только.

Если програмисты поленились делать упереждающую загрузку и накидали превьюшек "на все!", то такое поведение всё равно можно классифицировать как "не освободили корректно".

Бага нет.

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

Как с Вами тяжело :) Перечитайте, пожалуйста, статью, перечитайте комментарии к статье (ниже в том числе). Где хотя бы одно свидетельство, что память не освобождается? Взгляните на скриншот в начале статьи. Memory Pressure зелёное. Зачем освобождать память от того, что ещё может пригодиться, если пользователь снова откроет эту папку или снова промотает к этим картинкам, когда места ещё вагон? Ни исследователь, ни автор статьи, никто не удосужился проверить, а будут ли эти 2.5 Гб так и висеть в памяти, когда память закончится. Спойлер: скорее всего, не будут, иначе MacBook Pro не был бы любимой игрушкой фотографов на протяжении последних 10-15 лет. "Скорее всего" – потому что у меня, как и у автора статьи, нет никакого желания проверять)

А в чём проблема? Это вызывает какие-то проблемы при работе, что-то начинает работать хуже?

Если в ОС есть виртуальная память и качественно реализован механизм свопа, то какая разница сколько памяти потребляет приложение, если эта память повышает его отзывчивость?

Пока человек не пытается прокручивать галереи, всё у него будет хорошо и приятно — кеш куда-то на диск прозрачно выгружен. А если вдруг понадобилось галереи таки прокручивать, то снова всё будет хорошо и приятно — компактный кеш быстро загрузится с диска в память и не придётся переваривать большие оригиналы. Не вижу здесь сценария, где пользователь страдает и при этом можно его страдания облегчить через ограничение кеша.

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

От создателей "убейте все приложения на вашем айфоне вручную, чтобы он работал быстрее". В принципе, достаточно взглянуть на скриншот, предоставленный этим самым исследователем: memory pressure зелёное, места в памяти вагон. Проблема-то где? Да, оно именно так и должно работать. Высасывание из пальца в конце статьи про 8 Гб – туда же. Где тесты на 8 Гб устройстве? Где тесты на любом устройстве, где память загружена под завязку и без Finder? Если всего этого нет, о чём мы говорим вообще?

Вот такой же вопрос возник

Оперативная память и должна работать, а в данном случае она работает в угоду пользовательскому опыту, пока существует возможность. Если система корректно форсированно выгружает этот by design для текущих более приоритетных задач в фокусе при нехватке памяти, то я думаю, что это вообще ни разу не проблема. Смотреть на цифры занятой памяти бессмысленно, по крайней мере, пока нет проблем с производительностью.

Да, есть небольшой вопрос по размерам, конечно ( а чо так много то реально на превьюшки? )

Проблема , полагаю, всё же не в классической "утечке", а в том, что by design 1550 MB на превьюшки 100 jpeg'ов это немного дофига. Особенно парадоксально это выглядит, когда система после загрузки занимает 250 MB.

Возникает нехорошее подозрение, что это не превьюшки, а полные изображения, да ещё в каком-то битмапе без сжатия + набор их миниатюр. Остается загадкой, что происходит при открытии папки с 10k jpeg'ов в 50 мегапикселей каждый. Или это харам?

Вы неправильно держите айфон открываете папки?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости

Истории