Hat jemand herausgefunden, wie die eindeutige Seite jedes einzelnen Safari-Webinhaltsprozesses mit Safari 7 / Mavericks identifiziert werden kann?


10

Ich weiß, dass ich nicht der erste bin, der sich das wundert.

So etwas wie der Chrome Task Manager.

Kurz gesagt, wenn in der neuen Safari 7 (im Lieferumfang von Mavericks enthalten) mehrere Registerkarten / Seiten geöffnet sind, wird jede als separater Systemprozess gestartet. Sie können die Liste der Prozesse im Aktivitätsmonitor anzeigen, jedoch nicht die zugrunde liegende Seite oder URL jedes Prozesses.

Dies ist sehr hilfreich bei der Fehlerbehebung bei einer außer Kontrolle geratenen oder hängenden Seite, die RAM- oder CPU-Zyklen beansprucht.

Apple hat das Aktivitätsfenster in Safari 6 entfernt. Und jetzt mit Safari 7 sind die separaten Prozesse großartig, aber detailliertere Informationen zu den einzelnen Registerkarten wären wirklich großartig.

Jemand?


Ja, das Weggehen des Aktivitätsfensters ist ein großer Verlust. Aber das Aktivitätsfenster ist alles andere als perfekt. In Yosemites Safari hat Apple das Problem berücksichtigt. Wir werden sehen wie.
Nicolas Barbulesco

Antworten:


6

Wenn Sie mit der Maus über den Namen des Prozesses fahren, wird ein Tooltip mit der URL-Basisdomäne angezeigt

Geben Sie hier die Bildbeschreibung ein


Aber es ist nicht möglich, die vollständige URL zu sehen, oder? Wenn ich zum Beispiel zwei Registerkarten geöffnet habe, sowohl google.com als auch jede Registerkarte eine andere Suchanfrage haben, kann ich nicht zwischen diesen unterscheiden, nicht wahr? Aber wenn nichts mehr benötigt wird, ist dies ziemlich genial und viel einfacher; D
Napcae

Das ist richtig :-)
Markhunte

1
Wunderbar, Leute. Vielen Dank! Ich habe den Mouseover-Trick zufällig entdeckt und bin hierher zurückgekommen, um den Fund zu veröffentlichen, als ich Ihre Antworten sah. Ich habe keine weiteren Benachrichtigungen von stackechange erhalten.
dmbream

10

Dies ist keine ideale Lösung, aber eine recht gute Problemumgehung.

Öffnen Sie Safari und gehen Sie zu Einstellungen. Aktivieren Sie die Debug-Option (Entwicklungsmenü in der Menüleiste anzeigen)

Safari-Einstellungsbereich BEARBEITEN: Anstatt das Entwicklungsmenü zu aktivieren, müssen Sie ein Terminal öffnen und das Debug-Menü mit aktivierendefaults write com.apple.Safari IncludeInternalDebugMenu -bool true

Danke @Collin C.

Sie finden die Option Show Web Process IDs in Page Titlesunter Debug> Verschiedene Flags

Webprozess-IDs anzeigen

Wenn Sie den Aktivitätsmonitor jetzt öffnen, werden die Webprozess-IDs für die entsprechenden Websites angezeigt.

Webprozess-ID und Aktivitätsmonitor

Ich hoffe das hilft dir.


1
Anstatt das Entwicklermenü in den Einstellungen zu aktivieren, müssen Sie das Debug-Menü über die Befehlszeile mit "Standardwerte schreiben com.apple.Safari IncludeInternalDebugMenu -bool true" aktivieren
Colin C.

Netter Tipp. Wir vermissen aber immer noch den umgekehrten Weg: Prozess → Registerkarten.
Nicolas Barbulesco

3

Update: "Welche URLs sind mit jeder Safari-PID verknüpft?"

Dies ist ein Update zum Thema Anzeigen, welche Safari-URLs welchen PIDs im Aktivitätsmonitor zugeordnet sind. Ich verwende Safari 8.0.6 unter Yosemite 10.10.3 mit aktiviertem Debug-Menü und aktivierter Option "PIDs in den Seitentiteln anzeigen". (Siehe oben und unten, wie das geht.)

Nicolas B erklärte, dass „wir immer noch den umgekehrten Weg vermissen: Prozess> Registerkarten“ und bezog sich auf die Suche nach einer Liste von Registerkartennamen basierend auf der PID für eine einzelne Position im Aktivitätsmonitor.

Ich kann Ihnen zeigen, wie Sie alle Registerkarten anzeigen, die einem bestimmten Webprozess (PID) zugeordnet sind, obwohl dies möglicherweise nicht vollständig zufriedenstellend ist, da:

  • es ist ein mehrstufiger Prozess, und
  • Der Versuch, die Logik in PID-Zuweisungen basierend auf Registerkarten zu finden, ähnelt dem Lesen von Teeblättern, wie es scheint.

Es sollte auch beachtet werden, dass das Auflisten aller Seiten-URLs, die einem einzelnen Webprozess in Activity Monitor zugeordnet sind, in der Benutzeroberfläche, wie sie heute vorhanden ist, nicht praktikabel ist. (Ich wünschte, das Safari-Team von Apple würde es jedoch in das Infofenster für Webprozesse aufnehmen!)

Zuerst habe ich den Namen angenommen, der in der Prozesszeile angezeigt wird und auf die letzte vollständige Seite verweist, die von dieser PID geöffnet wurde (ohne zwischengespeicherte Seiten), aber leider scheint dies nicht der Fall zu sein. Ich bin nicht sicher, wie die Werbebuchung tatsächlich ihren Namen erhält. Ich werde die Ergebnisse meines Experiments teilen, um die Antwort zu finden, nachdem ich erklärt habe, wie Sie sehen können, welche Registerkarten den einzelnen Werbebuchungen im Aktivitätsmonitor zugeordnet sind.

Schritt für Schritt

  1. Aktivieren Sie das Debug-Menü in Safari

  2. Aktivieren Sie die Option zum Anzeigen von Webprozess-IDs in Seitentiteln (wie oben erläutert).

  3. Holen Sie sich diese hervorragende Safari-Erweiterung von Brett Terpstra, TabLinks .
    (Bitte spende an ihn, wenn du das Plugin nützlich findest!)

  4. Führen Sie die Erweiterung aus, indem Sie die Taste mit dem kleinen Link-Symbol drücken (normalerweise links von der Such- / Standortleiste von Safari).

  5. Fügen Sie in der Erweiterung der Vorlage, die zum Anzeigen der Ergebnisse verwendet wird, ein Trennzeichen hinzu (für zukünftige Such- und Ersetzungsarbeiten).

    Ich habe ein Ying-Yang-Zeichen eingefügt, daher war meine Vorlage : [%w-%n]:☯%u☯%t. Auf diese Weise erhalten Sie die Ergebnisse - einschließlich der [WP PID]Informationen am Ende jedes Registerkartennamens - aus den Debugging-Informationen von Safari.

  6. Kopieren Sie die Ergebnisse und fügen Sie sie in Ihre bevorzugte Texteditor-App ein. (Nisus Writer Pro gehört mir!)

    Führen Sie eine Suche und Ersetzung für Ihr Trennzeichen durch (für mich ☯), und ersetzen Sie sie durch ein Tabulatorzeichen (hier eines :) .

    Führen Sie ein weiteres Suchen und Ersetzen [WPdurch und ersetzen Sie nur das einzelne führende Leerzeichen durch ein Tabulatorzeichen «tab»[WP. Auf diese Weise können Sie die PIDs in einer Tabelle in eine separate Spalte aufteilen.

    Speichern Sie diese Datei als .tabreine Textdatei.

  7. Öffnen Sie die Tab-Datei in einer Tabellenkalkulations-App (ich habe Zahlen verwendet) und haben Sie Spaß beim Sortieren nach PID. Jetzt gibt es nur noch einen Schritt ...

  8. Im Activity Monitor , wählen Sie Prozesse Ansicht ▶ ︎ Alle, Hierarchisch und copy-paste die Liste der Line-Elemente URLs in Ihre Tabelle neben den Registerkarten Namen und Zahlen , die Sie bereits haben dort zeigt.

    (Sie können alle nicht benötigten Spaltendaten verwerfen und die URLs und PIDs einfach in zwei Spalten aufbewahren. Oder Sie können die Spalte Speicher hinzufügen, um auch die RAM-Nutzung zu vergleichen.)

Das ist es; nicht gerade schnell, aber nicht besonders kompliziert. Es gibt wahrscheinlich einen schnelleren Weg, aber dies war mein erster Versuch, diese Informationen zu erhalten.

Danach finden Sie möglicherweise ähnliche Ergebnisse wie ich. Ich hatte 9 geöffnete Fenster mit insgesamt 36 Registerkarten, die alle in 20 Prozessen im URL-Stil enthalten waren.

( Hinweis: Hier bin ich nicht auch die vielen QTKitServer und Safari Web Content Prozesse Diese laufen neben den meisten, wenn nicht alles der „url Prozesse“ Diese QTKitServer Prozesse einen kleinen RAM - Fußabdruck im Vergleich zu den wichtigsten „url Prozesse haben.. ”, Z. B. 4,5 MB gegenüber 300 MB.)

Beobachtungen

  • Ich hatte 9 Fenster mit 36 ​​Registerkarten, die in 20 Prozessen ausgeführt wurden

  • Die RAM-Nutzung betrug insgesamt 5,4 GB (durchschnittlich 258 MB pro Prozess).

  • Der private Speicher betrug insgesamt 2,0 GB (durchschnittlich 97 MB pro Prozess).

  • Jede einzelne Prozessposition kann eine oder mehrere Registerkarten enthalten (meine hatte normalerweise eine oder zwei Registerkarten pro PID).

  • Der URL-Name in der Werbebuchung scheint keinem erkennbaren Muster zu folgen, außer dass der Name normalerweise (aber NICHT IMMER) die Basis-URL einer der dieser PID zugewiesenen Registerkarten widerspiegelt

  • Manchmal ist der URL-Name ungenau! Von meinen 20 Prozessen verwendeten 4 eine URL, die in keinem meiner Tabs geöffnet war.

    (Könnten dies vielleicht zwischengespeicherte Seiten sein?)

  • Eine neue Registerkarte (oder ein neues Fenster) kann entweder einer vorhandenen PID oder einem neuen Prozess scheinbar „zufällig“ zugewiesen werden. Sie sind weder sequentiell noch mit einem bestimmten Fenster gruppiert. Daher können in jedem Fenster mit mehreren Registerkarten mehrere PIDs nebeneinander ausgeführt werden.

Das reicht fürs Erste! Ich hoffe, jemand ist viel schlauer als ich mitkommen und ein bisschen mehr erklären kann! Aloha.


0

Ich habe ein Applescript geschrieben, das normalerweise vom Terminal aus ausgeführt wird, aber es kann leicht für eine andere Benutzerfreundlichkeit geändert werden, die zu Ihnen passt. Die Ausgabe zeigt Fenster / Tab, Titel, verwendeten Speicher, URL mit langen Zeichenfolgen, die zum Starten ... Ende gekürzt wurden

Um die Speichergröße zu erhalten, benötigen Sie Registerkarten mit der Prozess-ID, wie in mehreren obigen Beiträgen beschrieben. Ich verwende eine Funktion, um das Skript über Osascript auszuführen, die alle in den Kommentaren in der Datei angegeben sind.

Beispiel:

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+    @  /apple//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.

Beachten Sie, dass es in Safari einige Fehler gibt (mindestens 11.1.2), sodass der Cache von Seiten und deren Titeln zu 0 oder mehr als 1 PID im Titel führen kann. Die Javascript-Seite enthält 2 alte Verweise aus dem Cache, aber das Skript übernimmt die letzte, aktuelle, PID. Wenn die URL nicht von Safari geladen wird, ist der Prozess kleiner und die URL-Zeichenfolge fehlt.

Schreiben Sie mir bei Interesse eine PM. Ich könnte es auf Github stellen ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.