ตรวจสอบการใช้งานซีพียูโดยแท็บหรือโดย add-on บน firefox บน mac [สำเนา]


13

Firefox เวอร์ชันของฉันมีกระบวนการ / เธรดที่ควบคุมไม่ได้ซึ่งทำให้ใช้ซีพียู 100% ใน MacBook Pro ของฉัน (OSX 10.7.4) หลังจากนั้นไม่กี่นาที ฉันพยายามใช้about:memoryและabout:addons-memoryพยายามหาสาเหตุที่ทำให้เกิดปัญหา แต่ดูเหมือนจะไม่เกี่ยวข้องกับการใช้หน่วยความจำเลย มีวิธีดูการใช้งาน CPU ตามแท็บหรือโปรแกรมเสริมแทนหรือไม่?

คำตอบ:


6

ที่จริงแล้วabout:memoryแท็บแสดงการจัดสรรหน่วยความจำตามแท็บ มันยากที่จะคร่ำครวญ

เมื่อคุณไปที่about:memoryคุณจะเห็นรายการการจัดสรรหน่วยความจำที่จัดเรียงตามลำดับชั้น รายการระดับบนสุดแรกในรายการที่ควรจะจัดสรรที่ชัดเจน ภายใต้นั้นมีหลายโหนดลีฟ คนที่คุณกำลังมองหาคือหน้าต่างวัตถุ ใต้นั้นโหนดส่วนใหญ่ที่มีป้ายกำกับว่า "top" หมายถึงแท็บ (หากคุณโหลดเว็บไซต์คุณจะเห็นที่อยู่ถัดจาก "top") ตัวอย่างเช่นฉันเห็น:

├───29.63 MB (15.27%) -- window-objects
│   ├──12.64 MB (06.52%) ++ top(chrome://browser/content/browser.xul, id=3)
│   ├───6.84 MB (03.53%) ++ top(http://www.cnn.com/, id=31)
│   ├───4.55 MB (02.35%) ++ top(https://ftp.mozilla.org/, id=24)
│   ├───3.50 MB (01.80%) ++ (5 tiny)

ตัวเลขที่อยู่ด้านหน้าคือการใช้หน่วยความจำซึ่งคิดเป็นเปอร์เซ็นต์ของการใช้หน่วยความจำโดยรวมของ Firefox

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

หมายเหตุฉันอยู่ในช่องเบต้า (ดังนั้นขณะนี้ใช้ Firefox 22.0b2) แต่ฉันเชื่อว่านี่ใช้งานได้กับรุ่นเก่ากว่า


ขอบคุณฉันไม่ได้สังเกตเห็นว่ามีหน่วยความจำรั่ว ดูเหมือนว่าหน่วยความจำมีแนวโน้มที่จะอยู่ค่อนข้างคงที่ หลังจากนั้นไม่นานซีพียูก็แหลมและยังคงอยู่แบบนั้น
claire

11
คำถามนั้นเกี่ยวกับการใช้งานCPUโดยเฉพาะไม่ใช่หน่วยความจำ
laggingreflex

@laggingreflex: ใช่ฉันรู้ ฉันตอบกลับข้อความ "แต่ดูเหมือนจะไม่เกี่ยวข้องกับการใช้หน่วยความจำเลย" อย่างไรก็ตามเมื่อมองย้อนกลับไปบางทีแคลร์อาจหมายถึง "CPU" แทน "หน่วยความจำ"
InnerPortal

ด้วย Firefox 38 (ทำงานบน Linux) ฉันต้องคลิกMeasureใต้Show Memory Reportsเพื่อสร้างและดูแผนผังที่คุณอธิบาย (หากนี่เหมือนกันในทุกแพลตฟอร์มมันอาจทำให้คำตอบสมบูรณ์ขึ้นเล็กน้อย)
joeytwiddle

5

มีสาเหตุหลายประการสำหรับการใช้งาน CPU สูงใน Firefox โดยมีรายละเอียดด้านล่าง

1.Add-on

สาเหตุปกติสำหรับปัญหา CPU คือส่วนเสริมที่ไม่ดี การทดสอบครั้งแรกที่ควรทำคือเริ่ม Firefox โดยไม่มีโปรแกรมเสริม

จากการแก้ไขปัญหา Firefox โดยใช้เซฟโหมด :

ที่ด้านบนของหน้าต่าง Firefox คลิกปุ่ม Firefox Restart with Add-ons Disabled...ไปมากกว่าที่จะช่วยเหลือเมนูและเลือก Firefox จะเริ่มต้นด้วยกล่องโต้ตอบ Firefox Safe Mode หมายเหตุ: คุณสามารถเริ่ม Firefox ในเซฟโหมดได้โดยกดปุ่ม Shift ค้างไว้ขณะที่เริ่ม Firefox

ตอนนี้คุณมีสองทางเลือก:

การคลิกปุ่มเริ่มในเซฟโหมดจะเป็นการปิดใช้งานส่วนขยายและธีมชั่วคราวปิดการเร่งด้วยฮาร์ดแวร์และตั้งค่าแถบเครื่องมือและตั้งค่าปุ่มเอง เมื่อคุณออกจาก Safe Mode และเริ่ม Firefox ตามปกติส่วนขยายธีมและการตั้งค่าของคุณจะกลับสู่สถานะเดิมก่อนเข้าสู่ Safe Mode

หากอยู่ในเซฟโหมดคุณไม่มีปัญหาเกี่ยวกับ CPU แสดงว่ามีปัญหากับส่วนเสริมอันใดอันหนึ่งของคุณ คุณสามารถใช้เมนูTools > Add-onsเพื่อเลือกปิดการใช้งานโปรแกรมเสริมและเริ่ม Firefox ใหม่จนกว่าคุณจะพบคนที่ไม่ดี

2.Flash

แฟลชเป็นที่รู้จักสำหรับปัญหาดังกล่าว หนึ่งในวิธีการตามปกติของการแก้ไขก็คือการปิดการใช้งานของ Firefox เร่งความเร็วของฮาร์ดแวร์ โดยใช้เมนูแท็บขั้นสูงที่จะยกเลิกการทำเครื่องหมายTools > OptionsUse Hardware Acceleration When Available

แนะนำให้ใช้โปรแกรมเสริมสองตัวAdblock PlusและNoScriptเพื่อบล็อกองค์ประกอบที่ไม่จำเป็นรวมถึง Flash บนหน้าเว็บที่คุณกำลังดู

3.JavaScript

JavaScript ในเว็บไซต์ที่คุณกำลังดูอยู่ในแท็บใดแท็บหนึ่งของคุณอาจเขียนโค้ดไม่ดีและเสีย CPU โดยการวนซ้ำ

วิธีแก้ไขที่ดีที่สุดคือใช้ NoScript เพื่อหลีกเลี่ยงการเรียกใช้ JavaScript จากเว็บไซต์ที่คุณไม่เชื่อถือ นี่เป็นมาตรการรักษาความปลอดภัยที่ทุกคนควรใช้เพื่อหลีกเลี่ยง การโจมตีด้วยสคริปต์ข้ามไซต์

4.Profiling

หากไม่ชัดเจนว่าเว็บไซต์ใดก่อให้เกิด CPU สูงเว็บไซต์หนึ่งสามารถใช้การทำโปรไฟล์ใน Firefox ได้แม้ว่าจะไม่ใช่แบบฝึกหัดง่ายๆ

ผู้ดีบักที่ทำโปรไฟล์ ได้แก่ :

หากคุณเป็นนักพัฒนาและรู้สึกเหมือนการผจญภัยและเนื่องจากคุณอยู่ใน Mac คุณสามารถใช้DTrace ตามที่อธิบายไว้ในPerformance / Optimizing JavaScript ด้วย DTraceซึ่งเป็นเครื่องมือที่นักพัฒนา Mozilla ใช้


3

@claire: ขณะนี้ไม่มีวิธี 'ง่าย' เพื่อดูสิ่งที่คุณต้องการ ถ้าคุณไปตามทางของ harrymc คุณจะพบข้อมูลบางอย่างเกี่ยวกับที่มาของปัญหา แต่อาจจะไม่แน่นอน

หากคุณต้องการใช้วิธี 'ยาก' ซึ่งจะแสดงให้คุณเห็นว่า CPU ของคุณกินอะไรอยู่ใน firefox และ / หรือมันเป็น plugins คุณต้องเริ่มทำการดีบัก firefox ของคุณในสภาพแวดล้อมของคุณ (บางครั้งไม่ใช่แค่ firefox และหรือปลั๊กอิน แต่ lib ที่เสียหายที่พวกเขาพึ่งพา) นี่คือคำอธิบายที่สมบูรณ์เกี่ยวกับการทำถ้าคุณมีความคิดเกี่ยวกับการเขียนโปรแกรม XCode สามารถดาวน์โหลดได้ฟรีจาก apple:

https://developer.mozilla.org/en-US/docs/Debugging_on_Mac_OS_X

แต่คุณไม่จำเป็นต้องตรวจแก้จุดบกพร่องรหัสโมซิลลาเต็มรูปแบบ แต่คุณจะพบจุดที่สัมพันธ์กับการใช้งาน CPU ที่เพิ่มขึ้น ที่สามารถบอกคุณได้ว่าปัญหามาจากที่ใด (เช่นการวนซ้ำไม่ดีเป็นต้น)


1

หาก Firefox ของคุณกำลังใช้งานและกินการใช้งาน CPU ทั้งหมดด้วยเหตุผลบางอย่างคุณสามารถลอง จำกัด จำนวนได้ ของตัวประมวลผลและลำดับความสำคัญที่ CPU จะมอบให้กับกระบวนการนั้นเพื่อลดการใช้งาน CPU

สำหรับการทำเช่นนี้คลิก ( Ctrl+ Alt+ Del) เพื่อเปิดตัวจัดการงานและจากนั้นคลิกแท็บกระบวนการ (กระบวนการที่แสดงกระบวนการทั้งหมดที่มีนามสกุลของพวกเขา (โดยทั่วไปเมื่อคุณอยู่บน Windows กระบวนการทั้งหมดควรลงท้ายด้วยนามสกุล. exe) คลิกขวา ที่มันและเลือกเลือกลำดับความสำคัญในการตั้งค่าลำดับความสำคัญ (ถ้ามันตั้งค่าให้สูงกว่าปกติแล้วนำมันมาเป็นปกติมิฉะนั้นถ้ามันตั้งมาเป็นปกติและคุณต้องการที่จะลดมันมากกว่าค่าที่ต่ำกว่าเลือกกว่าปกติ) และการตั้งค่าความสัมพันธ์ที่จะ จำกัด จำนวนตัวประมวลผลที่สนับสนุนกระบวนการนั้นกำหนดจำนวนตัวประมวลผลที่คุณต้องการแล้วคลิกตกลงเพื่อย้อนกลับตรวจสอบดูว่าการทำงานนี้หรือไม่

จำไว้ว่าสิ่งนี้ใช้ได้กับคอมพิวเตอร์หลายตัวประมวลผลเท่านั้น (เช่นดูอัลคอร์, ควอดคอร์, ฯลฯ ) และการใช้งาน CPU นั้นแตกต่างจากการใช้หน่วยความจำ


1
ขออภัยด้วยความผิดพลาดฉันลืมที่จะอ่านว่าคุณใช้ firefox บน MAC ฉันไม่ได้มีประสบการณ์กับ MAC มากนัก แต่ถ้ามันมีตัวจัดการงานเช่นหน้าต่างเดียววิธีนี้ใช้ได้กับระบบ windows เท่านั้น
ฮันเตอร์

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