Quelqu'un a-t-il trouvé comment identifier la page unique de chaque processus de contenu Web Safari séparé avec Safari 7 / Mavericks?

10

Je sais que je ne suis pas le premier à me poser cette question.

Quelque chose comme Chrome Task Manager.

En bref, lorsque vous avez plusieurs onglets / pages ouverts dans le nouveau Safari 7 (livré avec Mavericks), chacun est lancé en tant que processus système distinct. Vous pouvez afficher la liste des processus dans le moniteur d'activité, mais vous ne pouvez pas voir la page ou l'URL sous-jacente de chaque processus.

Cela serait très utile pour dépanner une page en fuite ou suspendue qui aspire des cycles de RAM ou de CPU.

Apple a supprimé la fenêtre d'activité dans Safari 6. Et maintenant, avec Safari 7, les processus séparés sont excellents, mais des informations plus précises sur chaque onglet seraient vraiment formidables.

N'importe qui?

dmbream
la source
Oui, la fenêtre d'activité qui s'en va est une grande perte. Mais la fenêtre d'activité est loin d'être parfaite. Dans Safari de Yosemite, Apple a pris en compte le problème. Nous verrons comment.
Nicolas Barbulesco

Réponses:

6

Si vous passez la souris sur le nom du processus, une info-bulle vous indiquera le domaine de base de l'URL.

entrez la description de l'image ici

markhunte
la source
Mais il n'est pas possible de voir l'URL complète n'est-ce pas? Donc, si j'ai par exemple deux onglets ouverts, google.com et chaque onglet ont une autre demande de recherche, alors je ne serai pas en mesure de les distinguer, n'est-ce pas? Mais si rien de plus n'est nécessaire, que ce soit assez ingénieux et beaucoup plus simple; D
napcae
C'est vrai :-)
markhunte
1
Merveilleux, les gars. Merci! Je viens de découvrir par hasard le truc de la souris par moi-même et revenais ici pour poster la découverte quand j'ai vu vos réponses. Je n'ai jamais reçu de notifications de suivi de stackechange.
dmbream
10

Ce n'est pas une solution idéale mais une assez bonne solution de contournement.

Ouvrez Safari puis allez dans Préférences. Activez l'option Debug (Afficher le menu de développement dans la barre de menus)

Volet Préférences Safari EDIT: au lieu d'activer le menu de développement, vous devez ouvrir un terminal et activer le menu de débogage avecdefaults write com.apple.Safari IncludeInternalDebugMenu -bool true

Merci @Collin C.

Vous trouverez l'option Show Web Process IDs in Page Titlessous Débogage> Indicateurs divers

Afficher les ID de processus Web

Si vous ouvrez le moniteur d'activité maintenant, vous pouvez voir les ID de processus Web vers les sites Web correspondants.

ID de processus Web et moniteur d'activité

J'espère que cela vous aide.

Napcae
la source
1
Plutôt que d'activer le menu développeur dans les préférences, vous devez activer le menu de débogage via la ligne de commande avec "par défaut écrire com.apple.Safari IncludeInternalDebugMenu -bool true"
Colin C.
Bon conseil. Mais nous manquons encore le chemin inverse: Processus → Tabulations.
Nicolas Barbulesco
3

Mise à jour: «Quelles URL sont associées à chaque Safari PID?»

Il s'agit d'une mise à jour sur le sujet de voir quelles URL Safari sont associées à quels PID dans Activity Monitor. J'utilise Safari 8.0.6 sur Yosemite 10.10.3 avec le menu Debug activé et l'option «Afficher les PID dans les titres de page» activée. (Voir ci-dessus et ci-dessous pour savoir comment procéder.)

Nicolas B a déclaré que «nous manquons toujours le chemin inverse: Processus> Onglets», se référant à la recherche d'une liste de noms d'onglets basée sur le PID d'un seul élément de ligne dans Activity Monitor.

Je peux vous montrer comment voir tous les onglets associés à un processus Web particulier (PID), bien qu'il ne puisse pas donner entière satisfaction, car:

  • il s'agit d'un processus en plusieurs étapes, et
  • essayer de trouver la logique dans les affectations PID basées sur des onglets est similaire à la lecture des feuilles de thé semble-t-il.

Il ne faut pas non plus oublier que répertorier toutes les URL de page associées à un processus Web unique dans le Moniteur d'activité n'est pas possible dans l'interface utilisateur telle qu'elle existe aujourd'hui. (Je souhaite que l'équipe Safari d'Apple l'ajoute dans la fenêtre d'informations pour les processus Web, cependant!)

Au début, j'ai supposé que le nom affiché sur l'élément de ligne de processus faisait référence à la dernière page complète ouverte par ce PID (sans compter les pages mises en cache), mais hélas cela ne semble pas être le cas. Je ne sais pas exactement comment l'élément de campagne tire son nom. Je partagerai les résultats de mon test pour trouver la réponse après avoir expliqué comment voir quels onglets sont associés à chaque élément de campagne dans le moniteur d'activité.

Pas à pas

  1. Activez le menu Déboguer dans Safari

  2. Activez l'option pour afficher les ID de processus Web dans les titres de page (comme expliqué ci-dessus)

  3. Obtenez cette excellente extension Safari de Brett Terpstra, TabLinks .
    (Merci de lui faire un don si vous trouvez le plugin utile!)

  4. Exécutez l'extension en appuyant sur le bouton avec la petite icône de lien (généralement à gauche de la barre de recherche / localisation de Safari)

  5. Dans l'extension, ajoutez un caractère de séparation dans le modèle utilisé pour afficher les résultats (pour les futurs travaux de recherche et remplacement).

    J'ai inséré un caractère ying-yang, donc mon modèle était: [%w-%n]:☯%u☯%t. Cela vous donnera les résultats - y compris les [WP PID]informations à la fin de chaque nom d'onglet - des informations de débogage de Safari.

  6. Copiez et collez les résultats dans votre application d'édition de texte préférée. (Nisus Writer Pro est à moi!)

    Effectuez une recherche et un remplacement sur votre caractère de séparation (pour moi, ☯), et remplacez-les par un caractère de tabulation (en voici un:) .

    Effectuez une autre recherche et remplacement [WPet ne remplacez que l'espace de tête unique par un caractère de tabulation «tab»[WP. Cela vous permettra de diviser les PID en une colonne distincte dans une feuille de calcul.

    Enregistrez ce fichier en tant que .tabfichier texte brut.

  7. Ouvrez le fichier d'onglet dans une application de feuille de calcul (j'ai utilisé des nombres) et amusez-vous à trier par PID. Il ne reste plus qu'une étape ...

  8. Dans le Moniteur d'activité , sélectionnez Afficher ▶ ︎ Tous les processus, hiérarchiquement , et copiez-collez la liste des éléments de campagne affichant les URL dans votre feuille de calcul, à côté des noms et des numéros d'onglet que vous y avez déjà.

    (Vous pouvez supprimer toutes les données de colonne dont vous n'avez pas besoin et simplement conserver les URL et PID dans deux colonnes; ou, ajoutez également la colonne Mémoire pour comparer l'utilisation de la RAM.)

C'est tout; pas exactement rapide, mais pas terriblement compliqué. Il y a probablement un moyen plus rapide, mais c'était ma première tentative d'obtenir ces informations.

Après cela, vous pouvez trouver des résultats similaires aux miens. J'avais 9 fenêtres ouvertes avec un total de 36 onglets, tous étant contenus dans 20 processus de «style url».

( REMARQUE: ici, je n'inclus pas les nombreux processus QTKitServer et Safari Web Content . Ceux-ci fonctionnent avec la plupart, sinon la totalité, des «processus url». Ces processus QTKitServer ont une petite empreinte RAM par rapport aux principaux «processus url» ", Par exemple, 4,5 Mo contre 300 Mo.)

Observations

  • J'avais 9 fenêtres avec 36 onglets, fonctionnant en 20 processus

  • L'utilisation de la RAM était de 5,4 Go au total (258 Mo en moyenne par processus)

  • La mémoire privée était de 2,0 Go au total (97 Mo en moyenne par processus)

  • Tout élément de campagne de processus unique peut contenir un ou plusieurs onglets (le mien avait généralement un ou deux onglets par PID)

  • Le nom de l'URL dans l'élément de campagne ne semble suivre aucun modèle que je puisse discerner, sauf que le nom reflète généralement (mais PAS TOUJOURS) l'URL de base de l'un des onglets attribués à ce PID

  • Parfois, le nom de l'URL est inexact! Sur mes 20 processus, 4 ont utilisé une URL qui n'était ouverte dans aucun de mes onglets.

    (Ces pages pourraient-elles être mises en cache, peut-être?)

  • Un nouvel onglet (ou fenêtre) peut être affecté soit à un PID existant, soit à un nouveau processus, apparemment de façon «aléatoire». Ils ne sont ni séquentiels, ni groupés avec une fenêtre particulière; ainsi, toute fenêtre avec plusieurs onglets peut avoir plusieurs PID côte à côte.

C'est assez pour l'instant! J'espère que quelqu'un beaucoup plus intelligent que moi pourra vous expliquer un peu plus! Aloha.

Kaliko Trapp
la source
0

J'ai écrit un script Apple, je l'exécute normalement depuis le terminal mais il pourrait être facilement modifié pour une autre facilité d'utilisation qui vous convient. La sortie affiche la fenêtre / l'onglet, le titre, la mémoire utilisée, l'URL Avec de longues chaînes raccourcies pour commencer ... fin

Pour obtenir la taille de la mémoire, vous aurez besoin d'onglets montrant l'ID du processus comme détaillé par plusieurs articles ci-dessus.J'utilise une fonction pour exécuter le script via osascript, tous notés dans les commentaires du fichier.

Exemple:

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.

Notez qu'il y a quelques bugs dans Safari (11.1.2 au moins) pour que le cache des pages et leurs titres puissent donner 0 ou plus de 1 PID dans le titre, la page javascript a 2 anciennes références du cache mais le script prend le dernier, actuel, PID. Si l'URL n'est pas chargée par Safari, le processus est plus petit et la chaîne d'URL sera manquante.

Envoyez-moi un PM si vous êtes intéressé. Je pourrais le mettre sur github ...

colin
la source