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ś?


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


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.


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.


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 ...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.