Кто-нибудь выяснил, как идентифицировать уникальную страницу каждого отдельного процесса веб-контента Safari с Safari 7 / Mavericks?

10

Я знаю, что я не первый, кто задается этим вопросом.

Что-то вроде диспетчера задач Chrome.

Короче говоря, если в новом Safari 7 (поставляется с Mavericks) открыто несколько вкладок / страниц, каждая из них запускается как отдельный системный процесс. Вы можете просмотреть список процессов в Activity Monitor, но не можете увидеть базовую страницу или URL-адрес каждого процесса.

Это было бы очень полезно для устранения неисправности сбежавшей или зависшей страницы, которая высасывает циклы ОЗУ или ЦП.

Apple удалила окно «Активность» в Safari 6. И теперь с Safari 7 отдельные процессы великолепны, но более детальная информация о каждой вкладке была бы действительно полезна.

Кто угодно?

dmbream
источник
Да, уход окна активности является большой потерей. Но окно активности далеко не идеально. В Safari Йосемити Apple учла эту проблему. Посмотрим как.
Николас Барбулеско

Ответы:

6

Если вы наведете указатель мыши на имя процесса, появится всплывающая подсказка с указанием URL-адреса базового домена.

введите описание изображения здесь

markhunte
источник
Но невозможно увидеть полный URL, не так ли? Так, если у меня, например, открыты две вкладки, и на google.com, и на каждой вкладке есть другой поисковый запрос, я не смогу отличить их, не так ли? Но если больше ничего не нужно, то это довольно гениально и намного проще; D
napcae 26.10.13
Это правильно :-)
markhunte
1
Замечательно, ребята. Спасибо! Просто случайно обнаружил трюк с наведением мыши на себя и возвращался сюда, чтобы опубликовать находку, когда увидел ваши ответы. Я никогда не получал никаких последующих уведомлений от stackechange.
dmbream
10

Это не идеальное решение, но неплохой обходной путь.

Откройте Safari и перейдите в «Настройки». Активируйте опцию Отладка (Показать меню разработки в строке меню)

Панель настроек Safari РЕДАКТИРОВАТЬ: вместо того, чтобы активировать меню разработки, вы должны открыть терминал и активировать меню отладки с помощьюdefaults write com.apple.Safari IncludeInternalDebugMenu -bool true

Спасибо @Colin C.

Вы найдете опцию в Show Web Process IDs in Page Titlesразделе «Отладка»> «Другие флаги».

Показать идентификаторы веб-процессов

Если вы откроете Монитор активности сейчас, вы сможете увидеть идентификаторы веб-процессов на соответствующих веб-сайтах.

Идентификатор веб-процесса и монитор активности

Я надеюсь, что это помогает вам.

napcae
источник
1
Вместо того, чтобы включить меню разработчика в настройках, вы должны включить меню отладки через командную строку с помощью «по умолчанию напишите com.apple.Safari IncludeInternalDebugMenu -bool true»
Колин С.
Хороший совет. Но мы все еще пропускаем обратный путь: Процесс → Вкладки.
Николас Барбулеско
3

Обновление: «Какие URL-адреса связаны с каждым PID Safari?»

Это обновление, посвященное просмотру, какие URL-адреса Safari связаны с какими PID в Activity Monitor. Я использую Safari 8.0.6 на Yosemite 10.10.3 с включенным меню «Отладка» и включенной опцией «Показывать PID в заголовках страниц». (См. Выше и ниже, как это сделать.)

Николас Б. заявил, что «мы все еще упускаем противоположный путь: Процесс> Вкладки», ссылаясь на поиск списка имен вкладок на основе PID отдельной позиции в Activity Monitor.

Я могу показать вам, как просмотреть все вкладки, связанные с определенным веб-процессом (PID), хотя это может не приносить полного удовлетворения, поскольку:

  • это многоэтапный процесс, и
  • попытка найти логику в назначениях PID на основе вкладок, похоже на чтение чайных листьев.

Следует также помнить, что перечисление всех URL-адресов страниц, связанных с каким-либо отдельным веб-процессом в Activity Monitor, в пользовательском интерфейсе практически невозможно, поскольку оно существует сегодня. (Однако хотелось бы, чтобы команда Apple Safari добавила его в информационное окно для веб-процессов!)

Сначала я предположил, что имя, отображаемое в элементе процесса, относится к последней полной странице, открытой этим PID (не включая кэшированные страницы), но, увы, это не так. Я не уверен, каким образом позиция получает свое имя. Я поделюсь результатами своего эксперимента, чтобы найти ответ после моего объяснения того, как увидеть, какие вкладки связаны с каждой позицией в Activity Monitor.

Шаг за шагом

  1. Включите меню отладки в Safari

  2. Включите опцию для отображения идентификаторов веб-процессов в заголовках страниц (как описано выше)

  3. Получите это превосходное расширение Safari от Бретта Терпстры , TabLinks .
    (Пожалуйста, пожертвуйте ему, если вы найдете плагин полезным!)

  4. Запустите расширение, нажав кнопку с небольшим значком ссылки (обычно слева от панели поиска / местоположения Safari).

  5. В расширении добавьте символ разделителя в шаблон, используемый для отображения результатов (для будущей работы поиска и замены).

    Я вставил символ инь-янь, так что мой шаблон был: [%w-%n]:☯%u☯%t. Это даст вам результаты - включая [WP PID]информацию в конце названия каждой вкладки - из информации отладки Safari.

  6. Скопируйте и вставьте результаты в ваше любимое приложение текстового редактора. (Nisus Writer Pro мой!)

    Выполните поиск и замену вашего символа-разделителя (для меня ☯) и замените их символом табуляции (вот такой:) .

    Выполните еще один поиск и замену [WPи замените только один начальный пробел символом табуляции «tab»[WP. Это позволит вам разделить PID на отдельный столбец в электронной таблице.

    Сохраните этот файл в виде .tabпростого текстового файла.

  7. Откройте файл вкладки в приложении для работы с электронными таблицами (я использовал Numbers) и получайте удовольствие от сортировки по PID. Теперь есть только еще один шаг ...

  8. В Activity Monitor выберите View ▶ ︎ All Processs, Hierarchically , и скопируйте и вставьте список позиций, отображающих URL-адреса, в вашу электронную таблицу вместе с именами вкладок и номерами, которые у вас уже есть.

    (Вы можете отбросить все ненужные данные столбца и просто сохранить URL-адреса и PID в двух столбцах; или добавить столбец «Память», чтобы сравнить использование ОЗУ.)

Это оно; не совсем быстро, но не очень сложно. Возможно, есть более быстрый путь, но это была моя первая попытка получить эту информацию.

После этого вы можете найти результаты, похожие на мои. У меня было открыто 9 окон с 36 вкладками, все они содержались в 20 процессах в стиле «url».

( ПРИМЕЧАНИЕ. Здесь я не включаю многие процессы QTKitServer и Safari Web Content . Они выполняются вместе с большинством, если не со всеми, «процессами url». Эти процессы QTKitServer имеют небольшой объем ОЗУ по сравнению с основными «процессами url». », Например, 4,5 МБ против 300 МБ.)

наблюдения

  • У меня было 9 окон с 36 вкладками, запущенных в 20 процессах

  • Общее использование оперативной памяти составило 5,4 ГБ (в среднем 258 МБ на процесс)

  • Общая память составила 2,0 ГБ (в среднем 97 МБ на процесс)

  • Любая отдельная позиция процесса может содержать одну или несколько вкладок (моя обычно имела одну или две вкладки на PID)

  • Имя URL в позиции не похоже на какой-либо шаблон, который я могу различить, за исключением того, что имя обычно (но НЕ ВСЕГДА) отражает базовый URL одной из вкладок, назначенных этому PID.

  • Иногда имя URL неточно! Из моих 20 процессов 4 использовали URL, который НЕ был открыт ни на одной из моих вкладок.

    (Может быть, это кэшированные страницы, возможно?)

  • Новая вкладка (или окно) может быть назначена либо существующему PID, либо новому процессу, по-видимому, «случайным» образом. Они не являются ни последовательными, ни сгруппированными с каким-либо конкретным окном; таким образом, любое окно с несколькими вкладками может иметь несколько PID, работающих рядом друг с другом.

Этого пока достаточно! Я надеюсь, что кто-то намного умнее, чем я, может прийти и объяснить немного больше! Aloha.

Калико Трапп
источник