Czy ktoś wymyślił, jak zidentyfikować unikalną stronę każdego oddzielnego procesu Safari Web Content za pomocą Safari 7 / Mavericks?

10

Wiem, że nie jestem pierwszym, który się nad tym zastanawia.

Coś w rodzaju Menedżera zadań Chrome.

Krótko mówiąc, jeśli masz wiele kart / stron otwartych w nowym Safari 7 (dostarczanym z Mavericks), każda z nich jest uruchamiana jako osobny proces systemowy. Możesz wyświetlić listę procesów w Monitorze aktywności, ale nie widzisz strony lub adresu URL każdego procesu.

Byłoby to bardzo pomocne przy rozwiązywaniu problemów z niekontrolowaną lub zawieszającą się stroną, która wysysa pamięć RAM lub cykle procesora.

Apple usunął okno aktywności w Safari 6. A teraz w Safari 7 osobne procesy są świetne, ale bardziej szczegółowe informacje o każdej karcie byłyby naprawdę świetne.

Ktoś?

dmbream
źródło
Tak, zniknięcie okna aktywności to wielka strata. Ale okno aktywności dalekie od ideału. W Yosemite's Safari firma Apple uwzględniła ten problem. Zobaczymy jak.
Nicolas Barbulesco

Odpowiedzi:

6

Jeśli najedziesz myszką na nazwę procesu, pojawi się etykietka z informacją o domenie podstawowej adresu URL

wprowadź opis zdjęcia tutaj

markhunte
źródło
Ale nie można zobaczyć pełnego adresu URL, prawda? Więc jeśli mam na przykład dwie otwarte karty, zarówno google.com, jak i każda karta ma inne żądanie wyszukiwania, to nie będę w stanie rozróżnić między nimi, prawda? Ale jeśli nic więcej nie jest potrzebne, jest to dość pomysłowe i o wiele prostsze; D
napcae
Zgadza się :-)
markhunte
1
Cudownie, chłopaki. Dzięki! Właśnie losowo odkryłem sztuczkę najechania kursorem na siebie i wracałem tutaj, aby opublikować znalezisko, kiedy zobaczyłem twoje odpowiedzi. Nigdy nie otrzymałem żadnych dalszych powiadomień od zmiany stosu.
dmbream
10

To nie jest idealne rozwiązanie, ale całkiem dobre obejście.

Otwórz Safari, a następnie przejdź do Preferencji. Aktywuj opcję debugowania (Pokaż menu rozwijania na pasku menu)

Panel preferencji Safari EDYCJA: Zamiast aktywować menu rozwijania, musisz otworzyć terminal i aktywować menu debugowania za pomocądefaults write com.apple.Safari IncludeInternalDebugMenu -bool true

Dzięki @Collin C.

Znajdziesz opcję Show Web Process IDs in Page Titlesw Debugowanie> Różne flagi

Pokaż identyfikatory procesów internetowych

Jeśli teraz otworzysz Monitor aktywności, możesz zobaczyć identyfikatory procesów WWW w odpowiednich witrynach.

Identyfikator procesu sieciowego i monitor aktywności

Mam nadzieję, że to ci pomaga.

napcae
źródło
1
Zamiast włączać menu programisty w preferencjach, musisz włączyć menu debugowania za pomocą wiersza polecenia z „domyślnym zapisem com.apple.Safari IncludeInternalDebugMenu -bool true”
Colin C.
Dobra wskazówka. Ale nadal tęsknimy za odwrotnością: Proces → Karty.
Nicolas Barbulesco
3

Aktualizacja: „Które adresy URL są powiązane z każdym PID Safari?”

To jest aktualizacja na temat sprawdzania, które adresy URL Safari są powiązane z którymi PID w Monitorze aktywności. Używam Safari 8.0.6 na Yosemite 10.10.3 z włączonym menu debugowania i włączoną opcją „Pokaż PID w tytułach stron”. (Zobacz, jak to zrobić powyżej i poniżej).

Nicolas B stwierdził, że „wciąż brakuje nam odwrotnego sposobu: Przetwarzanie> Tabulatory”, odnosząc się do szukania listy nazw tabulatorów na podstawie pojedynczego elementu PID w Monitorze aktywności.

Mogę pokazać, jak wyświetlić wszystkie karty powiązane z określonym procesem internetowym (PID), chociaż może nie być w pełni satysfakcjonujące, ponieważ:

  • jest to proces wieloetapowy i
  • próba znalezienia logiki w przypisaniach PID opartych na kartach przypomina czytanie liści herbaty.

Należy również pamiętać, że wyświetlanie wszystkich adresów URL stron powiązanych z dowolnym pojedynczym procesem internetowym w Monitorze aktywności nie jest możliwe w interfejsie użytkownika, ponieważ istnieje on obecnie. (Chciałbym jednak, żeby zespół Apple Apple dodał to do okna informacyjnego dla procesów sieciowych!)

Na początku założyłem, że nazwa wyświetlana w elemencie procesu odnoszącym się do ostatniej pełnej strony otwartej przez ten PID (nie włączając stron buforowanych), ale niestety tak nie jest. Nie jestem pewien, w jaki sposób element zamówienia otrzymuje swoją nazwę. Podzielę się wynikami mojego eksperymentu, aby znaleźć odpowiedź po wyjaśnieniu, w jaki sposób zobaczyć, które karty są powiązane z każdym elementem zamówienia w Monitorze aktywności.

Krok po kroku

  1. Włącz menu debugowania w przeglądarce Safari

  2. Włącz opcję Pokaż identyfikatory procesów internetowych w tytułach stron (jak wyjaśniono powyżej)

  3. Uzyskaj to doskonałe rozszerzenie Safari od Brett Terpstra, TabLinks .
    (Przekaż mu darowiznę, jeśli uznasz wtyczkę za przydatną!)

  4. Uruchom rozszerzenie, naciskając przycisk z małą ikoną linku (zwykle po lewej stronie paska wyszukiwania / lokalizacji Safari)

  5. W rozszerzeniu dodaj znak separatora do szablonu używanego do wyświetlania wyników (w celu przyszłego wyszukiwania i zamiany).

    I dodaje znak ying-yang, więc mój szablon był: [%w-%n]:☯%u☯%t. Dzięki temu uzyskasz wyniki - w tym [WP PID]informacje na końcu nazwy każdej karty - z informacji debugowania Safari.

  6. Skopiuj i wklej wyniki do swojej ulubionej aplikacji do edycji tekstu. (Nisus Writer Pro jest mój!)

    Wykonaj wyszukiwanie i zamień na znaku separatora (dla mnie ☯) i zamień je znakiem tabulacji (oto jeden:) .

    Wykonaj kolejne wyszukiwanie i zamień [WPi zamień tylko pojedyncze spacje wiodące znakiem tabulacji «tab»[WP. Umożliwi to podzielenie PID na osobną kolumnę w arkuszu kalkulacyjnym.

    Zapisz ten plik jako .tabzwykły plik tekstowy.

  7. Otwórz plik zakładki w aplikacji do arkuszy kalkulacyjnych (użyłem Numbers) i baw się dobrze sortując według PID. Teraz jest tylko jeden krok ...

  8. W Monitorze aktywności wybierz Widok ▶ ︎ Wszystkie procesy, hierarchicznie , i skopiuj i wklej listę elementów zamówienia wyświetlających adresy URL do arkusza kalkulacyjnego wraz z nazwami kart i liczbami, które już tam masz.

    (Możesz odrzucić wszystkie niepotrzebne dane z kolumny i po prostu zachować adresy URL i PID w dwóch kolumnach; lub dodać kolumnę Pamięć, aby porównać użycie pamięci RAM).

Otóż ​​to; niezupełnie szybkie, ale niezbyt skomplikowane. Prawdopodobnie jest szybszy sposób, ale to była moja pierwsza próba uzyskania tych informacji.

Po wykonaniu tej czynności możesz znaleźć wyniki podobne do moich. Miałem 9 otwartych okien z łącznie 36 kartami, wszystkie zawarte w 20 procesach typu „url”.

( UWAGA: Oto, ja nie w tym wiele QTKitServer i zawartość Safari Web procesy te są uruchamiane wraz z najbardziej, jeśli nie wszystkie z „procesów URL” Te procesy QTKitServer mają mały ślad RAM w porównaniu do głównych „procesów URL.. ”, Np. 4,5 MB vs. 300 MB.)

Spostrzeżenia

  • Miałem 9 okien z 36 kartami, działających w 20 procesach

  • Całkowite wykorzystanie pamięci RAM wyniosło 5,4 GB (średnio 258 MB na proces)

  • Prywatna pamięć wynosiła 2,0 GB (średnio 97 MB na proces)

  • Każdy element zamówienia z pojedynczym procesem może zawierać jedną lub więcej kart (moja zwykle miała jedną lub dwie karty na PID)

  • Nazwa adresu URL w elemencie zamówienia nie wydaje się być zgodna z żadnym wzorcem, jaki mogę rozpoznać, z wyjątkiem tego, że nazwa zwykle (ale NIE ZAWSZE) odzwierciedla podstawowy adres URL jednej z zakładek przypisanych do tego PID

  • Czasami nazwa adresu URL jest niedokładna! Spośród moich 20 procesów 4 użyło adresu URL, który NIE był otwarty w żadnej z moich kart.

    (Czy to mogą być strony z pamięci podręcznej?)

  • Nowa karta (lub okno) może być przypisana do istniejącego PID lub do nowego procesu, pozornie w „losowy” sposób. Nie są one sekwencyjne ani zgrupowane z żadnym konkretnym oknem; dlatego każde okno z wieloma kartami może mieć kilka PID działających równolegle.

To na razie wystarczy! Mam nadzieję, że ktoś znacznie mądrzejszy, niż mogę przyjść i wyjaśnić trochę więcej! Aloha.

Kaliko Trapp
źródło
0

Napisałem Applecript, zwykle uruchamiam go z terminala, ale można go łatwo zmodyfikować, aby uzyskać inną łatwość użycia, która Ci odpowiada. Dane wyjściowe pokazują okno / kartę, tytuł, wykorzystaną pamięć, adres URL Z długimi łańcuchami skróconymi do początku ... końca

Aby uzyskać rozmiar pamięci, potrzebne będą zakładki pokazujące identyfikator procesu, jak opisano w kilku postach powyżej. Używam funkcji do uruchamiania skryptu za pomocą osascript, wszystkie odnotowane w komentarzach w pliku.

Przykład:

Window/Tab: Window Title                      MemoryUse    @  URL (may be missing on old tabs, swap window and many will change)
2/1:Javascript - DEV Community 👩👩‍💻 [WP 72069] [WP 84642] [WP 9351]        14M+    @  missing value
2/2:11 must-see TED Talks | TED Talks [WP 72071] [WP 84643] [WP 9352]         13M+    @  missing value
2/3:Folk Show: Episode 69 by Folk Radio | Mixcloud [WP 84644] [WP 9353]       13M+    @  missing value
2/4:heat exchanger extractor fan kitche...e Search [WP 84645] [WP 9354]       13M+    @  missing value
2/5:Fral Flipperdry 300 portable domest...midifier [WP 84646] [WP 9355]       13M+    @  missing value
2/6:DRI-365 for Homeowners [WP 84647] [WP 9356]                               14M+    @  missing value
2/7:Cart - Ventilation Megastore [WP 7302] [WP 9357]                          13M+    @  missing value
2/8:boulder DHV-20B preheat power - Google Search [WP 7357] [WP 9358]         13M+    @  missing value
2/9:osascript updating script file - Google Search [WP 8935] [WP 9359]        13M+    @  missing value
2/10:osx lion - Prevent an AppleScript s...ts - Stack Overflow [WP 9360]      81M+    @  /programming/9487...dification-date-when-using
^^^^^^^^^^^^^^^ above is window 2     Active tab 10

1/1:RouterOS -> WPMikroTik -> Interface Traffic Graphing [WP 9361]            87M+    @  http://192.168.88.1/graphs/iface/wlan2/
1/2:Decrypting TLS Browser Traffic With...| Red Flag Security [WP 9362]       86M+    @  https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/
1/3:"Show Web Process IDs in Page Title" bug - Google Search [WP 10201]       98M+    @  https://www.google.com/search?client=saf...e%22+bug&ie=UTF-8&oe=UTF-8
1/4:Has anyone figured out how to ident...s? - Ask Different [WP 10202]       202M+    @  https://apple.stackexchange.com/question...-of-each-separate-safari-w
^^^^^^^^^^^^^^^ above is window 1     Active tab 4

Window/Tab: Window Title                      MemoryUse    @  URL (may be missing on old tabs, swap window and URL info will change)
EXPLANATION: Front-most window is 1, last listed. Next window back, if any, will be 2, etc.
Left most TAB is 1/1, right most 1/4, probably the most recent.

Zauważ, że w Safari jest kilka błędów (przynajmniej 11.1.2), więc pamięć podręczna stron i ich tytuły mogą dać 0 lub więcej niż 1 PID w tytule, strona javascript ma 2 stare odwołania z pamięci podręcznej, ale skrypt pobiera ostatni, aktualny, PID. Jeśli adres URL nie jest ładowany przez Safari, proces jest mniejszy i brakuje ciągu adresu URL.

W razie zainteresowania napisz do mnie PM. Mógłbym umieścić to na github ...

Colin
źródło