มีใครคิดวิธีระบุหน้าเว็บที่ไม่ซ้ำของแต่ละกระบวนการแยกเนื้อหาเว็บ Safari ด้วย Safari 7 / Mavericks


10

ฉันรู้ว่าฉันไม่ใช่คนแรกที่สงสัยสิ่งนี้

บางอย่างเช่น Chrome Task Manager

กล่าวโดยย่อเมื่อคุณเปิดหลายแท็บ / หน้าใน Safari 7 ใหม่ (มาพร้อมกับ Mavericks) แต่ละอันจะถูกเรียกใช้เป็นกระบวนการแยกต่างหาก คุณสามารถดูรายการกระบวนการในการตรวจสอบกิจกรรม แต่คุณไม่สามารถดูหน้าพื้นฐานหรือ URL ของแต่ละกระบวนการ

สิ่งนี้จะเป็นประโยชน์อย่างมากสำหรับการแก้ไขปัญหาหน้ารันไทม์หรือหน้าแฮงค์ที่ดูด RAM หรือรอบ CPU

Apple ลบหน้าต่างกิจกรรมใน Safari 6 และตอนนี้ด้วย Safari 7 กระบวนการที่แยกออกมาก็ยอดเยี่ยม แต่ข้อมูลที่ละเอียดมากขึ้นเกี่ยวกับแต่ละแท็บจะดีมาก ๆ

ใคร?


ใช่หน้าต่างกิจกรรมที่กำลังจะสูญเสียไปมาก แต่หน้าต่างกิจกรรมไกลจากความสมบูรณ์แบบ ใน Safari ของ Yosemite Apple ได้พิจารณาปัญหานี้แล้ว เราจะมาดูกันว่า
Nicolas Barbulesco

คำตอบ:


6

หากคุณวางเมาส์เหนือชื่อของกระบวนการ Tooltip จะปรากฏขึ้นบอกโดเมน URL พื้นฐาน

ป้อนคำอธิบายรูปภาพที่นี่


แต่มันเป็นไปไม่ได้ที่จะเห็น URL แบบเต็มมันคืออะไร? ดังนั้นหากฉันมีแท็บเปิดตัวอย่างสองแท็บทั้ง google.com และแต่ละแท็บมีคำขอค้นหาอื่นดังนั้นฉันจะไม่สามารถแยกความแตกต่างระหว่างแท็บเหล่านั้นใช่ไหม แต่ถ้าไม่ต้องการอะไรมากกว่านี้ก็จะเป็นการแยบยลและเรียบง่ายกว่านี้มาก D
napcae

ถูกต้อง :-)
markhunte

1
ยอดเยี่ยมพวก ขอบคุณ! เพียงแค่ค้นพบเคล็ดลับการวางเมาส์แบบสุ่มด้วยตัวเองและกลับมาที่นี่เพื่อโพสต์การค้นหาเมื่อฉันเห็นคำตอบของคุณ ฉันไม่เคยได้รับการแจ้งเตือนการติดตามใด ๆ จาก stackechange
dmbream

10

นี่ไม่ใช่ทางออกที่ดี แต่เป็นวิธีการทำงานที่ค่อนข้างดี

เปิด Safari จากนั้นไปที่การตั้งค่า เปิดใช้งานตัวเลือก Debug (แสดงเมนูพัฒนาในแถบเมนู)

บานหน้าต่างการตั้งค่า Safari แก้ไข:แทนที่จะเปิดใช้งานเมนูพัฒนาคุณต้องเปิดเทอร์มินัลและเปิดใช้งานเมนูดีบั๊กด้วยdefaults write com.apple.Safari IncludeInternalDebugMenu -bool true

ขอบคุณ@Collin C.

คุณจะพบตัวเลือกShow Web Process IDs in Page Titlesภายใต้ Debug> Miscellaneous Flags

แสดง ID กระบวนการทางเว็บ

หากคุณเปิดการตรวจสอบกิจกรรมในตอนนี้คุณสามารถดูรหัสกระบวนการทางเว็บไปยังเว็บไซต์ที่เกี่ยวข้องได้

ID กระบวนการเว็บและการตรวจสอบกิจกรรม

ฉันหวังว่านี่จะช่วยคุณได้


1
แทนที่จะเปิดใช้งานเมนูนักพัฒนาซอฟต์แวร์ในการกำหนดค่าตามความชอบคุณต้องเปิดใช้งานเมนูดีบั๊กผ่านบรรทัดคำสั่งด้วย "ค่าเริ่มต้นเขียน com.apple.Safari IncludeInternalDebugMenu -bool true"
Colin C.

เคล็ดลับที่ดี แต่เรายังคงพลาดวิธีที่ตรงข้าม: กระบวนการ→แท็บ
Nicolas Barbulesco

3

อัปเดต:“ URL ใดบ้างที่เชื่อมโยงกับ Safari PID แต่ละอัน”

นี่คือการอัปเดตในหัวข้อการดูว่า Safari URL ใดที่เชื่อมโยงกับ PID ใดในการตรวจสอบกิจกรรม ฉันใช้ Safari 8.0.6 บน Yosemite 10.10.3 โดยเปิดเมนู Debug และเปิดตัวเลือก“ แสดง PID ในชื่อหน้า” (ดูด้านบนและด้านล่างสำหรับวิธีการทำเช่นนี้)

Nicolas B กล่าวว่า“ เรายังคงคิดถึงวิธีตรงข้าม: กระบวนการ> แท็บ” ซึ่งหมายถึงการค้นหารายชื่อแท็บโดยอ้างอิงจาก PID รายการโฆษณาเดี่ยวในการตรวจสอบกิจกรรม

ฉันสามารถแสดงให้คุณเห็นวิธีดูแท็บทั้งหมดที่เกี่ยวข้องกับกระบวนการทางเว็บ (PID) โดยเฉพาะแม้ว่ามันอาจไม่ได้รับความพึงพอใจอย่างสมบูรณ์เนื่องจาก:

  • มันเป็นกระบวนการหลายขั้นตอนและ
  • การพยายามหาตรรกะในการกำหนดค่า PID ที่อิงจากแท็บนั้นคล้ายกับการอ่านใบชาที่ดูเหมือนว่า

ควรจำไว้ว่าการแสดงรายการ URL หน้าทั้งหมดที่เกี่ยวข้องกับกระบวนการทางเว็บใด ๆ ภายในการตรวจสอบกิจกรรมนั้นไม่สามารถทำได้ใน UI ที่มีอยู่ในปัจจุบัน (ฉันหวังว่าทีม Safari ของ Apple จะเพิ่มเข้าไปในหน้าต่างข้อมูลสำหรับกระบวนการทางเว็บ!)

ตอนแรกฉันสันนิษฐานว่าชื่อที่แสดงในรายการโฆษณากระบวนการที่อ้างถึงหน้าเต็มครั้งล่าสุดที่เปิดโดย PID นั้น (ไม่รวมหน้าแคช) แต่ทว่านี่ก็ไม่ได้เป็นเช่นนั้น ฉันไม่แน่ใจว่ารายการโฆษณาได้รับชื่อจริงอย่างไร ฉันจะแบ่งปันผลลัพธ์ของการทดสอบของฉันเพื่อค้นหาคำตอบตามคำอธิบายของฉันเกี่ยวกับวิธีดูแท็บที่เกี่ยวข้องกับแต่ละรายการโฆษณาในการตรวจสอบกิจกรรม

เป็นขั้นเป็นตอน

  1. เปิดเมนูดีบั๊กใน Safari

  2. เปิดใช้งานตัวเลือกเพื่อแสดง ID กระบวนการทางเว็บใน Page Titles (ตามที่อธิบายข้างต้น)

  3. ได้รับนี้ขยายซาฟารีที่ดีเยี่ยมจากเบร็ท Terpstra, TabLinks
    (โปรดบริจาคให้เขาหากคุณพบว่ามีประโยชน์ปลั๊กอิน!)

  4. เรียกใช้ส่วนขยายด้วยการกดปุ่มพร้อมกับไอคอนลิงก์ขนาดเล็ก (โดยปกติจะอยู่ด้านซ้ายของแถบค้นหา / ตำแหน่งของ Safari)

  5. ในส่วนขยายเพิ่มอักขระตัวคั่นลงในเทมเพลตที่ใช้แสดงผลลัพธ์ (สำหรับงานการค้นหาและแทนที่ในอนาคต)

    [%w-%n]:☯%u☯%tผมแทรกตัวละครหญิงหยางดังนั้นแม่แบบของฉันคือ: สิ่งนี้จะให้ผลลัพธ์แก่คุณรวมถึง[WP PID]ข้อมูลที่ส่วนท้ายของแต่ละชื่อแท็บจากข้อมูลการดีบักของ Safari

  6. คัดลอกและวางผลลัพธ์ลงในแอพแก้ไขข้อความที่คุณชื่นชอบ (Nisus Writer Pro เป็นของฉัน!)

    จะค้นหาและแทนที่ตัวอักษรคั่นคุณ (สำหรับฉัน☯) และแทนที่ด้วยอักขระแท็บ (ที่นี่เป็นหนึ่ง: )

    ดำเนินการค้นหาและแทนที่อีก[WPและแทนที่เฉพาะ«tab»[WPพื้นที่ชั้นนำเดี่ยวที่มีอักขระแท็บ สิ่งนี้จะช่วยให้คุณสามารถแยก PID ออกเป็นคอลัมน์แยกในสเปรดชีต

    บันทึกไฟล์นี้เป็น.tabไฟล์ข้อความธรรมดา

  7. เปิดไฟล์แท็บในแอปสเปรดชีต (ฉันใช้เบอร์) และสนุกกับการเรียงลำดับตาม PID ขณะนี้มีอีกเพียงหนึ่งขั้นตอน ...

  8. ในการตรวจสอบกิจกรรมให้เลือกมุมมอง Process ︎กระบวนการทั้งหมดตามลำดับชั้นและคัดลอกรายการของรายการโฆษณาที่แสดง URL ลงในสเปรดชีตของคุณพร้อมกับชื่อแท็บและหมายเลขที่คุณมี

    (คุณสามารถละทิ้งข้อมูลคอลัมน์ทั้งหมดที่คุณไม่ต้องการและเพียงเก็บ URL และ PID ไว้ในสองคอลัมน์หรือเพิ่มคอลัมน์หน่วยความจำเพื่อเปรียบเทียบการใช้ RAM เช่นกัน)

แค่นั้นแหละ; ไม่เร็วอย่างแน่นอน แต่ไม่ซับซ้อนอย่างมาก อาจเป็นวิธีที่เร็วกว่านี้ แต่นี่เป็นครั้งแรกที่ฉันพยายามรับข้อมูลนี้

หลังจากทำเช่นนี้คุณอาจพบผลลัพธ์ที่คล้ายกับของฉัน ฉันเปิดหน้าต่าง 9 บานโดยมีแท็บทั้งหมด 36 แท็บทั้งหมดนั้นอยู่ในกระบวนการ 20 แบบ "url-style"

( หมายเหตุ: ที่นี่ฉันไม่ได้รวมกระบวนการQTKitServerและเนื้อหาเว็บ Safariหลายอย่างการทำงานเหล่านี้ส่วนใหญ่ - ถ้าไม่ใช่ทั้งหมดของ“ กระบวนการ url” กระบวนการ QTKitServer เหล่านี้มี RAM รอยขนาดเล็กเมื่อเทียบกับกระบวนการ“ url หลัก” ”, เช่น 4.5 MB เทียบกับ 300 MB)

ข้อสังเกต

  • ฉันมี 9 windows กับ 36 แท็บทำงานใน 20 กระบวนการ

  • การใช้ RAM รวม 5.4 GB (เฉลี่ย 258 MB ต่อกระบวนการ)

  • หน่วยความจำส่วนตัวรวม 2.0 GB (เฉลี่ย 97 MB ต่อกระบวนการ)

  • รายการโฆษณากระบวนการเดียวอาจมีแท็บอย่างน้อยหนึ่งแท็บ (โดยปกติแล้วฉันจะมีหนึ่งหรือสองแท็บต่อ PID)

  • ชื่อ URL ในรายการโฆษณาดูเหมือนจะไม่เป็นไปตามรูปแบบใด ๆ ที่ฉันสามารถมองเห็นได้ยกเว้นว่าชื่อปกติ (แต่ไม่ใช่ทุกครั้ง) จะแสดง URL หลักของแท็บที่กำหนดให้กับ PID

  • บางครั้งชื่อ URL ไม่ถูกต้อง! จาก 20 กระบวนการของฉัน 4 ใช้ URL ที่ไม่ได้เปิดในแท็บใด ๆ ของฉัน

    (อาจเป็นหน้าแคชหรือไม่)

  • อาจมีการกำหนดแท็บใหม่ (หรือหน้าต่าง) ให้กับ PID ที่มีอยู่หรือกระบวนการใหม่ซึ่งดูเหมือนจะเป็นแบบ "สุ่ม" มันไม่ได้เรียงตามลำดับหรือจัดกลุ่มด้วยหน้าต่างใด ๆ ดังนั้นหน้าต่างใด ๆ ที่มีหลายแท็บสามารถมี PID หลายตัวที่ทำงานพร้อมกันได้

แค่นี้ก็เพียงพอแล้ว! ฉันหวังว่าจะมีคนฉลาดกว่าที่ฉันจะสามารถอธิบายเพิ่มเติมได้อีกเล็กน้อย! Aloha


0

ฉันเขียน applescript โดยปกติฉันจะเรียกใช้จาก terminal แต่มันสามารถแก้ไขได้อย่างง่ายดายเพื่อความสะดวกในการใช้งานอื่นที่เหมาะสมกับคุณ ผลลัพธ์จะแสดงหน้าต่าง / แท็บ, ชื่อเรื่อง, หน่วยความจำที่ใช้, URL ที่มีสตริงยาวสั้นลงเพื่อเริ่ม ... สิ้นสุด

เพื่อให้ได้ขนาดหน่วยความจำคุณจะต้องมีแท็บที่แสดง ID กระบวนการตามรายละเอียดโดยโพสต์หลายรายการด้านบนฉันใช้ฟังก์ชั่นเพื่อเรียกใช้สคริปต์ผ่านทาง JavaScript ทั้งหมดที่ระบุไว้ในความคิดเห็นในไฟล์

ตัวอย่าง:

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 ในชื่อหน้าจาวาสคริปต์มี 2 อ้างอิงเก่าจากแคช แต่สคริปต์ใช้ สุดท้าย, PID ในปัจจุบัน หาก URL ไม่ได้โหลดโดย Safari กระบวนการจะเล็กลงและสตริง URL จะหายไป

ส่ง PM มาให้ฉันหากสนใจ ฉันสามารถวางมันบน GitHub ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.