有没有人想出如何使用Safari 7 / Mavericks来识别每个单独的Safari Web Content流程的唯一页面?


10

我知道我不是第一个对此感到奇怪的人。

类似于Chrome任务管理器。

简而言之,当您在新的Safari 7(随Mavericks附带)中打开多个选项卡/页面时,每个选项卡/页面都会作为单独的系统进程启动。您可以在“活动监视器”中查看进程列表,但是看不到每个进程的基础页面或URL。

这对于解决占用RAM或CPU周期的失控页面或挂起的页面非常有用。

Apple删除了Safari 6中的“活动”窗口。现在,使用Safari 7时,单独的过程非常好,但是有关每个选项卡的更详细的信息确实很棒。

任何人?


是的,“活动”窗口消失是巨大的损失。但是“活动”窗口远非完美。在优胜美地的Safari中,苹果公司已考虑到该问题。我们将看到如何。
Nicolas Barbulesco 2014年

Answers:


6

如果将鼠标悬停在“进程”的名称上,则会显示一个工具提示,告诉您“ URL基础”域

在此处输入图片说明


但是不可能看到完整的URL吗?因此,例如,如果我打开了两个选项卡,google.com和每个选项卡都有另一个搜索请求,那么我将无法区分这两个选项卡,不是吗?但是,如果仅需这些,那将是相当巧妙且更简单的方法; D
napcae

没错:-)
markhunte

1
很棒,伙计们。谢谢!只是我自己随机发现了鼠标悬停的窍门,当我看到您的回复时,便回到这里发布发现。我从未收到来自stackechange的任何后续通知。
dmbream

10

这不是理想的解决方案,而是一个很好的解决方法。

打开Safari,然后转到“偏好设置”。激活“调试”选项(在菜单栏中显示开发菜单)

Safari偏好设定窗格 编辑:而不是激活开发菜单,您必须打开一个终端并使用以下命令激活调试菜单defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

谢谢@Collin C.

您将Show Web Process IDs in Page Titles在“调试”>“其他标志”下找到该选项。

显示Web进程ID

如果现在打开“活动监视器”,则可以看到相应网站的Web进程ID。

Web进程ID和活动监视器

希望对您有帮助。


1
而不是启用偏好开发商菜单中,您必须通过使用命令行启用调试菜单中的“默认写com.apple.Safari IncludeInternalDebugMenu -bool真”
科林C.

不错的提示。但是我们仍然想念相反的方法:“处理”→“制表符”。
Nicolas Barbulesco 2014年

3

更新:“哪个URL与每个Safari PID关联?”

这是有关在活动监视器中查看哪些Safari URL与哪些PID关联的主题的更新。我在Yosemite 10.10.3上使用Safari 8.0.6,并打开了Debug菜单,并打开了“在页面标题中显示PID”选项。(有关操作方法,请参见上文和下文。)

Nicolas B表示“我们仍然怀念相反的方式:“流程”>“选项卡”,指的是基于“活动监视器”中的单个行项PID查找选项卡名称的列表。

我可以向您展示如何查看与特定Web进程(PID)相关的所有选项卡,尽管它可能无法完全带来满足,因为:

  • 这是一个多步骤的过程,并且
  • 试图根据制表符在PID分配中查找逻辑似乎类似于读取茶叶。

还应该记住,在UI中列出与Activity Monitor中任何单个Web进程关联的所有页面URL并不可行,因为它已经存在。(但是我希望Apple的Safari团队将其添加到Web进程的信息窗口中!)

最初,我假定流程行项目上显示的名称是指该PID打开的最后一个完整页面(不包括缓存的页面),但是可惜情况并非如此。我不确定订单项的实际名称。在解释如何查看“活动监视器”中每个行项目与哪些选项卡相关的解释之后,我将分享实验结果以找到答案。

一步步

  1. 在Safari中打开“调试”菜单

  2. 启用选项以在页面标题中显示Web进程ID (如上所述)

  3. 从Brett Terpstra的TabLinks获得这个出色的Safari扩展。 (如果您发现该插件有用,请捐赠给他!)

  4. 通过使用带有小链接图标的按钮运行扩展程序(通常在Safari的搜索/位置栏左侧)

  5. 在扩展名中,在用于显示结果的模板中添加一个分隔符(用于将来的搜索和替换工作)。

    我插入了一个阴阳字符,所以我的模板是:[%w-%n]:☯%u☯%t。这将为您[WP PID]提供来自Safari调试信息的结果-包括每个选项卡名称末尾的信息。

  6. 将结果复制并粘贴到您喜欢的文本编辑器应用程序中。(Nisus Writer Pro是我的!)

    搜索并替换分隔符(对我来说是a),然后将其替换为制表符(这里是一个:)

    在上进行另一次搜索和替换[WP,并用制表符替换单个前导空格«tab»[WP。这将允许您将PID拆分为电子表格中的单独列。

    将此文件另存为.tab纯文本文件。

  7. 在电子表格应用程序中打开选项卡文件(我使用数字),并享受按PID排序的乐趣。现在只需要再走一步...

  8. 在“ 活动监视器”中依次选择“ 视图▶︎所有过程”,然后将显示URL的行项目列表以及已经存在的选项卡名称和编号粘贴到电子表格中。

    (您可以丢弃所有不需要的列数据,而仅将URL和PID保留在两列中;或者,也可以添加Memory列来比较RAM使用情况。)

而已; 并不十分快捷,但并不十分复杂。可能有一种更快的方法,但这是我第一次尝试获取此信息。

完成此操作后,您可能会发现与我相似的结果。我打开了9个窗口,共有36个选项卡,所有这些选项卡都包含在20个“ URL样式”进程中。

注意:在这里,我没有包括很多QTKitServerSafari Web Content进程。它们与大多数(如果不是全部)“ URL进程”同时运行。与主要的“ URL进程”相比,这些QTKitServer进程占用的内存很小”,例如4.5 MB与300 MB。)

观察结果

  • 我有9个带有36个选项卡的窗口,在20个进程中运行

  • RAM使用总计5.4 GB(每个进程平均258 MB)

  • 专用内存总计2.0 GB(每个进程平均97 MB)

  • 任何单个过程行项目都可以包含一个或多个标签(我的每个PID通常具有一个或两个标签)

  • 该行项目中的URL名称似乎没有遵循我可以辨别的任何模式,只是该名称通常(但并非总是)反映了分配给该PID的选项卡之一的基本URL

  • 有时URL名称不正确!在我的20个进程中,有4个使用的URL在我的任何选项卡中均未打开。

    (这些可能是缓存的页面吗?)

  • 似乎以“随机”方式将新的选项卡(或窗口)分配给现有的PID或新的过程。它们既不是顺序的,也不是与任何特定窗口组合的;因此,具有多个选项卡的任何窗口都可以具有多个同时运行的PID。

现在就足够了!我希望有人比我聪明得多,并能多解释一点!阿罗哈


0

我写了一个applescript,我通常从终端运行它,但是可以很容易地对其进行修改,以适合您的其他易用性。输出显示窗口/选项卡,标题,使用的内存,URL,其中长字符串被缩短以开始...结束

要获得内存大小,您将需要显示进程ID的选项卡,上面的几篇文章对此进行了详细说明。

例:

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.

请注意,Safari中存在一些错误(至少为11.1.2),因此页面及其标题的缓存可能导致标题中的0或超过1个PID,javascript页面中有2个来自缓存的旧引用,但脚本采用了最后,当前,PID。如果Safari未加载URL,则进程较小,并且URL字符串将丢失。

如果有兴趣请给我下午。我可以把它放在github上...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.