Safari 8.0 на Yosemite не вбиває процеси закритих вкладок, пам’яті хогі


7

Я щойно перейшов на Yosemite і почав використовувати новий Safari 8.0. Деякий час все здавалося нормально, але потім все ставало дещо повільніше і повільніше, особливо при перемиканні настільних ПК.

Втративши терпіння, я відкрив Монітор активності і, на мій шок, виявив, що близько десятка старих процесів веб-вмісту Safari все ще працює і використовує багато пам’яті, незважаючи на те, що вкладки вже закриті.

Хтось помітив подібну річ? Або знає спосіб змусити Safari вбити процес після закриття вкладки?

(Macbook Pro, середина 2012 року, 13 дюймів, 4 Гб оперативної пам’яті)


Чи трапляється така поведінка щоразу?
Матьє Ріглер

Так - коли я закриваю вкладки, процеси залишаються запущеними у фоновому режимі.
metjush

Я мав на увазі щоразу після перезавантаження Safari!
Матьє Ріглер

Я вийшов із Safari, перевірив, чи не зникли всі процеси і перезапустив його. Це більше не відбувається.
metjush

1
Тож не постійна помилка, мабуть, але помилка.
metjush

Відповіді:


2

Я бачив це ще з тих пір, як Safari 8 на OS X 10.9.5, OS X 10.10.x всі версії Safari 8 і, на жаль, в Safari 9 на всіх бета-версіях El Capitan і до цього часу. У моєму випадку витік пам'яті Safari є серйозним, і Safari потрібно повністю закривати та перезавантажувати. Це, здається, трапляється лише в тому випадку, якщо у вас є багато відкритих вікон, які ви «повторно використовуєте»; але в цілому Safari просто росте і росте (на багато ГБ).

Пропозиції про "введення більше пам'яті" є абсурдними. У мене ноутбук Macbook Pro 16 Гб, який є максимальною конфігурацією запайованої ("про" моєї задньої частини!) Пам'яті, яку забезпечує Apple. Додати більше просто неможливо. Тиск пам'яті та уповільнення часто стають критичними, коли Safari перевищує 10 Гб. Я колись наполегливо зберігався до моменту, коли він використовував понад 13 Гб. Якщо перезапустити всі вкладки, переглянуті вручну, щоб забезпечити завантаження всіх сторінок, вона повернеться до приблизно 2,5 Гбіт. Витік такого розміру абсолютно невиправданий.

Це суттєва зміна в поведінці Safari 7, яка в цьому відношенні поводилася в основному прекрасно - все ж є напрочуд мало повідомлень про це в Інтернеті. Це не найтонша проблема, і Safari 8 існує протягом багатьох століть. Інші помітили б, але мало хто повідомляє про це.

Я бачу це на моїй машині 10.9.5, домашньому ноутбуці 10.10, тестовому ноутбуці 10.11 і навіть зовсім недавно на ноутбуці 10.10. Мій висновок полягає в тому, що це повинно бути Safari викручуванням при наявності конкретних закладок, файлів cookie, кешу та / або інших даних, і ці дані повинні бути частиною матеріалів, якими він ділиться в iCloud - інакше я б не очікував, що моє незалежне чисте встановлення- робочий ноутбук від постачальника ІТ-технологій демонструє абсолютно таку саму поведінку.

Підсумок полягає в тому, що це, здається, є предметом даних про користувачів. Зробивши глибокий вдих і здійснивши повне скидання Safari - скидання закладок iCloud, спорожнення всього з кожного екземпляра Safari в акаунті iCloud, видалення ~ / Library / Safari тощо - може працювати відповідно до Форумів розробників. Але, як ніколи в Apple, приблизно з OS X 10.7, його безладдя і без будь-якої кількості псуедорантичних вбивств курей гарантовано вирішать вашу проблему.

Процеси закритих вкладок із закритими вкладками можуть просто звестись до "поганого розширення", але це не привід - розширення знаходяться під контролем Safari, і погане розширення ніколи не зможе зламати браузер. Це лише JavaScript-код, який виконується повністю під наглядом браузера. Але ми знаємо, що Safari повинен мати дуже поганий код для підтримки розширень, враховуючи проблематичну історію, тому це завжди варто вивчити, якщо ви ще цього не зробили.


1

"Web Content Process" = "Tab" - неправильне припущення. Процес веб-вмісту може містити більше однієї вкладки. Залежно від відомостей про реалізацію Safari, можливо, після закриття останньої вкладки, пов’язаної з певним процесом веб-вмісту, це не означає автоматично закривати цей веб-контент. Для Safari може бути можливим тримати цей процес у режимі очікування у фоновому режимі, щоб при необхідності взяти нову вкладку. Я думаю, що Mavericks Safari поводиться так само.

Щодо вашого досвіду "повільніше і повільніше": можливо, 4 Гб оперативної пам'яті недостатньо для нормальної роботи. В результаті використовується віртуальна пам'ять. Це означає, що ваш жорсткий диск (або SSD) використовується як розширення для вашої оперативної пам’яті, коли потрібно більше пам’яті для управління всіма відкритими процесами. Використання жорсткого диска означає уповільнення. SSD в цьому відношенні кращий.

Я використовую Safari 7 на Mavericks, я не перевіряю зараз, що відбувається при закритті достатньо великої кількості вкладок. Але дозвольте мені описати нормальну ситуацію на моєму MBP: На даний момент у мого Safari відкрито 4 вікна, кожне з яких містить 10-40 вкладок, сумарно - 100 відкритих вкладок. У Моніторі діяльності я бачу 20 процесів веб-вмісту, кожен з 9 до 12 потоків. Окрім того, у мене є 13 процесів веб-вмісту QTKitserver, кожні 2 теми. У всіх процесах веб-вмісту є тризначний PID, це означає, що вони були запущені на початку після мого останнього перезавантаження, що становить 3 дні тому. Тож Safari повторно використовує процеси веб-вмісту. Якби вони були новими процесами, вони отримали б PID з 4 або 5 знаками. Хоча, зізнаюся, я не відкривав і не закривав стільки вкладок з моменту останнього перезавантаження. У мене є 8 Гб оперативної пам’яті та SSD на кінці 2009 MBP.

Десь ви можете прочитати, що Yosemite потрібно трохи більше оперативної пам’яті, ніж Mavericks. Можливо, цього достатньо, щоб уповільнити систему 4 Гб порівняно з Mavericks. Хоча це не повинно працювати набагато гірше, ніж Mavericks. До речі, приємне прочитання з управління пам’яттю на 10,9 можна знайти тут .

Підсумок: Подумайте про встановлення 8 Гб оперативної пам’яті. Бруд дешева для МРП без ретрансляції.

І ви можете зробити це самостійно . Просто з’ясуйте, до яких модулів оперативної пам’яті належать ваші моделі MBP: https://support.apple.com/kb/HT201165?viewlocale=uk_US#1 .

Здається, що навіть старші MBP можливі навіть 16 ГБ, якщо пощастить. Остерігайтеся, ця тема об'ємом 16 Гб потребує додаткових досліджень: https://forums.macrumors.com/showthread.php?t=1511196

Але я не знаю, чи потрібно це у вашому випадку. На мою скромну думку, 8GB добре.


Версія Safari Mavericks, наскільки мені відомо, вела себе не так. На мою думку це помилка. Немає сенсу, щоб Safari підтримував 10 "процесів веб-вмісту", кожен з яких займав до 100 Мб оперативної пам'яті. Ці процеси слід очистити, коли відповідні вкладки закриті.
Адріан Тісселінг

Використання оперативної пам’яті повинно зменшуватися при закриванні вкладок. Можливо, що очищення відбувається не відразу. Але через деякий час у веб-процесах відображаються менші числа для використання пам'яті. Кількість ниток не повинна скорочуватися, це загальна схема програмування для того, щоб нитки були відкритими в пулі ниток. Але я починаю міркувати, я все ще на Mavericks, і буду на деякий час :). Точку, яку я хотів зробити, дивитись лише на ці цифри в "Моніторі діяльності" - це не означає все, тому що в операційній системі є складні методи обробки пам'яті.
Анон

"Ці процеси слід очистити, коли відповідні вкладки закриті". Ну, якщо закрити вкладку і натиснути ⌘Z, вона знову відкриє вкладку. Це, мабуть, ще одна причина, чому веб-процес не вбивається негайно, коли ви закриваєте вкладку.
Зерін

Дивіться мою відповідь. Safari 7 не виявляє проблеми, і він пропонує, що хтось додає пам'ять, коли вони повідомляють про очевидний витік пам'яті, безсумнівно, добре намірився, але в кінцевому рахунку насправді не надто корисний.
Ендрю Ходжкінсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.