Apple คำนวณการใช้พลังงานของกระบวนการใน OS X Mavericks อย่างไร


15

ใน OS X Mavericks คุณสามารถตรวจสอบการใช้พลังงานของกระบวนการต่าง ๆ ใน Activity Monitor การตรวจสอบกิจกรรมแสดงคอลัมน์ผลกระทบพลังงานที่นี่เราสามารถเห็น 'ผลกระทบด้านพลังงาน' และผลกระทบพลังงานโดยเฉลี่ย 'และค่าสามารถเกิน 100

นอกจากนี้ยังจะมีไอคอนแถบเมนูซึ่งแสดงรายการแอปพลิเคชันที่ใช้พลังงานมากที่สุดในตอนนี้

มีเอกสารใดที่ Apple คำนวณการใช้พลังงานในปัจจุบันหรือไม่? มีการแมประหว่างการใช้งาน CPU และการใช้พลังงานหรือไม่?

หวังว่าจะมีผู้เชี่ยวชาญบางคนที่สามารถให้คำแนะนำแก่ฉันได้

คำตอบ:


1

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

โปรแกรมที่ตอบสนองความต้องการที่จะตื่นขึ้นว่าทุก 10ms ในการดำเนินการเพียงไม่กี่บรรทัดของรหัส Obj-C ง่ายสามารถมีลำดับความสำคัญส่งผลกระทบต่อพลังงานขนาดใหญ่กว่าโปรแกรมเดียวกันการดำเนินการหลายพันสายรหัส แต่เพียงครั้งเดียวสองและไม่เป็นมาก โดยเฉพาะอย่างยิ่งเกี่ยวกับการคำนวณว่าจะเกิดขึ้นภายในเวลาที่สอง

Apple อาจใช้เคาน์เตอร์วัดประสิทธิภาพของ Intel และบัญชีเหล่านั้นไว้ในแอปพลิเคชันของคุณ คุณอาจได้รับข้อมูลเชิงลึกมากที่สุดโดยทำตามคู่มือ Intel ก่อนเพื่อทำความเข้าใจกับสถานะพลังงานและการจัดการพลังงาน สิ่งนี้จะแตกต่างกันอย่างมากระหว่างสถาปัตยกรรม แอพที่มีพฤติกรรมไม่ดีอาจมีผลกระทบต่อ Haswell มากกว่าเครื่อง Core 2 รุ่นเก่า

การใช้ทรัพยากรอื่น ๆ เช่นระบบเสียงการทำดิสก์ I / O หรือการใช้อุปกรณ์ USB อาจได้รับการพิจารณาด้วยเช่นกันวิธีการบัญชีที่มีแนวโน้มว่าจะกำหนดให้กับแอปพลิเคชันของคุณการใช้พลังงานทั้งหมดที่ทรัพยากรต้องการใช้ อุปกรณ์ USB ที่กำหนดเองเข้าถึง syste ระบบเสียงที่ใช้พลังงานอย่างอื่น) และทำการจัดระดับโปรสำหรับฮาร์ดแวร์ที่ใช้ร่วมกัน


1

ทุกอย่างเริ่มต้นด้วยการตรวจสอบและวัดที่แม่นยำจนถึงมิลลิวินาที

ตัวอย่างเช่น Intel ได้จัดทำเครื่องมือในการตรวจสอบพารามิเตอร์ของ CPU ของ Intel

จะแสดงพลังงานความถี่และอุณหภูมิ

การใช้พลังงานและอุณหภูมิเป็นผลิตภัณฑ์ของความถี่ (ความเร็ว) หรือปริมาณข้อมูลที่ประมวลผล

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

อินเทล

นี่คือบทความจาก Apple เกี่ยวกับการจัดการพลังงาน / การใช้พลังงาน

โดยสรุปการใช้การวัดพลังงาน ms สามารถควบคุมการใช้พลังงานโดยรวมได้ดียิ่งขึ้น

ก่อน TC

ก่อน

การใช้ข้อมูลข้างต้นในแต่ละแอปพลิเคชันและการใช้พลังงานสะสมที่เกิดขึ้นแอปเปิลได้ใช้คุณสมบัติการรวมตัวจับเวลาและแอป Nap เพื่อจัดการการใช้พลังงานที่ส่งผลในแผนภูมิด้านล่าง

หลังจาก TC

หลังจาก

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับชาร์ตดังกล่าวข้างต้นไปที่บทความนี้

เนื่องจากกิจกรรมของตัวควบคุม CPU รวมถึงการจัดการ RAM และการอ่าน / เขียนดิสก์การ์ดเครือข่ายและอื่น ๆ เช่นการปรับปรุงการจัดการ RAMยังช่วยลดการใช้พลังงานที่เกิดจากกิจกรรม R / W ของดิสก์บ่อยครั้ง

มีการจัดการพลังงานหลายด้านและเป็นการผสมผสานระหว่างการวัดที่แม่นยำมากและการออกแบบซอฟต์แวร์เพื่อลดการใช้พลังงาน

ตัวอย่างบางส่วนคือ:

ฟีเจอร์ App Nap

คุณสมบัติการรวมตัวตั้งเวลา PDF

คุณสมบัติการจัดการแรม


1
@grgarside ภาพดูเหมือนมาจากเว็บไซต์ที่เชื่อมโยงกับคำตอบ อย่างไรก็ตามมันจะไม่เป็นอันตรายต่อการระบุแหล่งที่มาของภาพแต่ละภาพอย่างชัดเจน
nohillside

1
@ patrix- ทำแหล่งที่มาแสดงให้เห็นว่าทุกอย่าง :)
Ruskes

0

ดูเหมือนจะไม่มีเอกสารใด ๆ เกี่ยวกับวิธีคำนวณการใช้พลังงาน การใช้ CPU เพียงอย่างเดียวไม่สามารถทำนายการใช้พลังงานได้อย่างน่าเชื่อถือ ดังนั้นปัจจัยหลักที่พิจารณาคือ (สิ่งเหล่านี้ค่อนข้างเสริมกับสิ่งที่ App Nap ดูและควบคุม)

  • การใช้งาน CPU
  • ดิสก์อินพุต / เอาต์พุต
  • เครือข่ายอินพุต / เอาต์พุต
  • การใช้อุปกรณ์ต่อพ่วง (เช่นลำโพงเสียงเป็นต้น)

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

เซ็นเซอร์สำคัญที่เกี่ยวข้องกับการใช้พลังงานที่มีอยู่ (และเป็นเวลาหลายปี) ในการตรวจสอบฮาร์ดแวร์คือแรงดันไฟฟ้าของ CPU, กระแสไฟของ CPU และพลังงานของ CPU สำหรับองค์ประกอบอื่น ๆ ในรายการด้านบนไม่มีเซ็นเซอร์ฮาร์ดแวร์เพื่อวัดการใช้พลังงาน ดังนั้น Apple จะต้องใช้ปัจจัยการคาดการณ์เฉพาะขึ้นอยู่กับรุ่นของ Mac และฮาร์ดแวร์พื้นฐาน


0

topจำนวนดูเหมือนจะมาจากโปรแกรม ฉันพบโพสต์บล็อกต่อไปนี้ซึ่งตรวจสอบการคำนวณในรายละเอียดเพิ่มเติม: https://blog.mozilla.org/nnethercote/2015/08/26/what-does-the-os-x-activity-monitors-energy-impact จริง ๆ วัด /

ในทุกกรณี "ผลกระทบด้านพลังงาน" ของ Activity Monitor นั้นเหมือนกับการtopวัดพลังงาน ทุกข้อบ่งชี้คือทั้งสองคำนวณบนเครื่องนี้เหมือนกัน

เนื่องจากtopเป็นโอเพ่นซอร์สเราสามารถตรวจสอบสูตร / รหัสจริงสำหรับวิธีคำนวณจำนวนนี้และการโพสต์บล็อกจะสรุปสิ่งนี้เป็น:

|elapsed_us| is the length of the sample period
|used_us| is the time this process was running during the sample period

%CPU = (used_us * 100.0) / elapsed_us

POWER = if is_a_kernel_process()
          0
        else
          ((used_us + IDLEW * 500) * 100.0) / elapsed_us

ตามที่ @Ruskes ให้คำแนะนำการคำนวณจะขึ้นอยู่กับการปลุกกระบวนการที่คุณวัดในระดับมิลลิวินาที โพสต์บล็อกระบุว่า:

การคำนวณ POWER เป็นฟังก์ชันของ CPU และ IDLEW โดยพื้นฐานแล้วมันก็เหมือนกับ% CPU แต่มี "ภาษี" 500 microseconds สำหรับการปลุกแต่ละครั้งและข้อยกเว้นสำหรับกระบวนการเคอร์เนล ค่าของฟังก์ชั่นนี้สามารถเกิน 100 ได้อย่างง่ายดาย - เช่นโปรแกรมที่มีการใช้งาน CPU เป็นศูนย์และ 3,000 Wakeups ต่อวินาทีจะมีคะแนน POWER 150 - ดังนั้นจึงไม่ใช่เปอร์เซ็นต์ ในความเป็นจริง POWER เป็นหน่วยวัดที่ไม่มีหน่วยเนื่องจากเป็นการรวมแบบกึ่งอิสระของสองมาตรการกับหน่วยที่เข้ากันไม่ได้

โดยพื้นฐานแล้วคุณสามารถคิดว่าจำนวนนั้นเป็นตัววัดการปลุกของ CPU

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