Apple, OS X Mavericks'teki bir işlemin enerji tüketimini nasıl hesaplar?


15

OS X Mavericks'te, Etkinlik İzleyicisi'nde farklı işlemlerin enerji tüketimini izleyebilirsiniz. Enerji Etkisi sütunlarını gösteren Etkinlik MonitörüBurada 'Enerji Etkisi' ve Ortalama Enerji Etkisi'ni görebiliriz ve değerlerin 100'ü aşabileceğini görüyoruz.

Ayrıca, şu anda çalışan en fazla enerji tüketen uygulamaları listeleyen bir menü çubuğu simgesi de olacaktır.

Apple'ın mevcut enerji tüketimini nasıl hesapladığına dair herhangi bir belge var mı? CPU kullanımı ile enerji tüketimi arasında bir eşleme var mı?

Umarım burada bana bir ipucu verebilecek bazı uzmanlar vardır.

Yanıtlar:


1

CPU kullanımının enerji tüketimini etkileyen birçok yönü vardır. Sadece bir uygulamanın ne kadar CPU tükettiği değil, aynı zamanda ne kadar sıklıkla ve ne kadar esnek olduğudur. İkincisi çok daha büyük bir etkiye sahip olabilir.

Sadece birkaç satır basit Obj-C kodu yürütmek için tam olarak her 10ms'de uyanması gereken bir uygulama, binlerce satırlık kod yürüten aynı uygulamadan daha büyük bir enerji etkisi büyüklüğüne sahip olabilir, ancak saniyede bir kez ve çok fazla olmamak özellikle bu saniye içinde tam olarak ne zaman hesaplamanın gerçekleşeceği hakkında.

Apple muhtemelen Intel'in performans sayaçlarını kullanıyor ve bunları uygulamanıza açıklıyor. Güç durumlarını ve enerji yönetimini anlamak için önce Intel kılavuzlarını izleyerek muhtemelen en fazla bilgi edinirsiniz. Bu mimariler arasında büyük farklılıklar gösterecektir. Kötü davranan bir uygulamanın Haswell üzerinde "eski" bir Core 2 makineye göre çok daha büyük bir etkisi olabilir.

Ses sistemi, disk G / Ç işlemi yapma veya USB aygıtları kullanma gibi diğer kaynakların kullanımı da hesaba katılabilir. Muhtemel bir muhasebe yöntemi, uygulamanızın özel olarak kullandığı kaynakların ihtiyaç duyduğu tüm enerji kullanımını uygulamanıza atayacaktır (örneğin; özel bir USB cihazı, başka bir şekilde kapatılmış bir ses sistemine erişim) ve paylaşılan donanım için bir tür pro-derecelendirme yapın.


1

Her şey milisaniyeye kadar hassas izleme ve ölçümlerle başlar.

Örneğin Intel, Intel CPU parametrelerini izlemek için bir araç hazırladı.

Güç Frekansı ve Sıcaklığı görüntüler.

Güç kullanımı ve Sıcaklık, Frekans (hız) veya işlenen veri miktarı ürünleridir.

Örnekleme hızı Milisaniye ve güç Watt cinsindendir ve Etkinlik monitörü Uygulama / İşlem tarafından kesilirken CPU için Toplam Gücü ölçer.

Intel

İşte Apple'ın güç yönetimi / tüketimi hakkında, gücün nasıl yönetildiği hakkında biraz daha ayrıntılı bilgi içeren bir makalesi .

Özetle, ms güç ölçümü kullanılarak toplam güç tüketimi daha iyi kontrol edilebilir.

TC'den önce

önce

Uygulama başına yukarıdaki bilgileri ve sonuçta elde edilen kümülatif Güç kullanımını kullanan Apple, aşağıdaki Grafik ile sonuçlanan Güç tüketimini yönetmek için Zamanlayıcı Birleştirme ve Uygulama Uydurma özelliklerini uygulamıştır.

TC'den sonra

sonra

Yukarıdaki grafiklerle ilgili daha fazla bilgi edinmek için bu makaleyi ziyaret edin .

CPU kontrolünün RAM yönetimi ve disk okuma / yazma dahil aktivitesi olduğundan, Ağ Kartı ve örneğin RAM yönetimini iyileştirme , sık sık disk R / W aktivitesinden kaynaklanan güç tüketimini azaltır.

Güç yönetiminin birçok yönü vardır ve bunlar güç tüketimini azaltmak için çok hassas ölçüm ve yazılım tasarımlarının bir kombinasyonudur.

Bazı örnekler:

Uygulama Şekerleme özelliği

Zamanlayıcı Birleştirme özelliği PDF

RAM yönetim özelliği


1
@grgarside Resimler cevaplarda bağlı sitelerden geliyor gibi görünüyor. Bununla birlikte, her bir resmin kaynağını açıkça belirtmek zarar vermez.
nohillside

1
@ patrix- bitti, her şey için kaynaklar gösterdi :)
Ruskes

0

Güç tüketiminin nasıl hesaplandığına dair herhangi bir belge yok gibi görünüyor. Yalnızca CPU kullanımı güç tüketimini güvenilir şekilde tahmin edemez. Dolayısıyla, dikkate alınan birincil faktörler olacaktır (bunlar App Nap'ın baktığı ve kontrol ettiği şeyler için biraz tamamlayıcıdır):

  • CPU kullanımı
  • Disk girişi / çıkışı
  • Ağ giriş / çıkışı
  • Çevresel kullanım (örneğin ses hoparlörleri gibi)

Yine, bu faktörlerin her birinin nasıl ölçüldüğü ve güç tüketimini hesaplamak için kullanılan formüller hakkında bilgi yoktur. Her Mac'in (ve ayrıca PC'nin) sistem içinde çeşitli sensörlerle donatılmış olmasıyla bazı eğitimli tahminler yapabiliriz. Mac'inizin hangi sensörlere sahip olduğunu ve gerçek zamanlı olarak rapor ettiklerini görmek için Donanım Monitörü gibi bir araç kullanabilirsiniz .

Donanım İzleyicisi'nde bulunan (ve birkaç yıldır var olan) güç tüketimi ile ilgili temel sensörler CPU Gerilimi, CPU Akımı ve CPU Gücüdür. Yukarıdaki listedeki diğer öğeler için, güç tüketimini ölçmek için herhangi bir donanım sensörü yoktur. Bu nedenle Apple, Mac modeline ve temel donanıma bağlı olarak belirli ekstrapolasyon faktörleri kullanıyor olmalıdır.


0

Numara programdan geliyor gibi görünüyor top. Bu hesaplamayı daha ayrıntılı olarak araştıran şu blog gönderisini buldum: https://blog.mozilla.org/nnethercote/2015/08/26/what-does-the-os-x-activity-monitors-energy-impact -aslında-ölçer /

Her durumda, Etkinlik Monitörünün “Enerji Etkisi” topnin GÜÇ ölçümü ile aynıydı . Her gösterge, ikisinin bu makinede aynı şekilde hesaplandığıdır.

Yana topaçık kaynak, biz bu sayı nasıl hesaplandığını için gerçek bir formül / kod soruşturma açabiliyor ve blog yazısı olarak bu özetler:

|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'in işaret ettiği gibi, hesaplama, işleminizin milisaniye düzeyinde ölçülen uyanmalarına dayanır. Blog yayını şu sözlerden bahseder:

GÜÇ hesaplaması CPU ve IDLEW işlevidir. Temel olarak% CPU ile aynıdır, ancak her uyandırma için 500 mikrosaniye “vergi” ve çekirdek işlemleri için bir istisna vardır. Bu işlevin değeri 100'ü kolayca aşabilir - örneğin sıfır CPU kullanımı olan bir program ve saniyede 3.000 uyandırma programı 150 POWER skoruna sahip olacaktır - bu yüzden yüzde değildir. Aslında, GÜÇ birimsiz bir ölçüdür, çünkü uyumsuz birimlerle iki ölçümün yarı keyfi bir kombinasyonudur.

Yani aslında, sayıyı CPU uyandırmalarının bir ölçüsü olarak düşünebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.