Terminalden macOS'ta geçerli CPU frekansını görmenin bir yolu var mı (Intel güç aracı değil)


14

Bu cevapların farkındayım:

/programming/9948987/detect-current-cpu-clock-speed-programmatically-on-os-x

OS X'te bir CPU'nun geçerli saat Hızı?

Intel Power GadgetMevcut CPU frekansını elde etmenin bir yolu olarak adlandırılan, bu bilgiyi terminalden elde etmek için bir program / yöntem var mı?

sysctl hw.cpufrequencyyalnızca CPU'nun nominal frekansını, yani üreticinin belirttiklerini gösterir. CPU boştayken Turbo Boost veya daha düşük frekansları dikkate almaz. (Örneğin CPU i5, 1.4GHz ise, her zaman 1.4GHz olacak)

CSO kullanarak verilen çözüm sysctl.haynı etkiye sahiptir.


StackOverflow bağlantısının arkasındaki yanıtlar Terminal tabanlı bir yanıt içerir. Bunun sizin için nasıl çalışmadığını açıklayabilir misiniz?
nohillside



Anladığım kadarıyla, "frekans" bir dizi faktöre dayanarak hesaplanır. Frekansın gerçekte ne olduğunu gerçek zamanlı olarak ölçmek için CPU'ya bağlı bir "prob" yoktur.
Allan

1
Linux'ta çalışıyorsa, oradaki kaynak koduna bakmak bir seçenek olabilir mi?
nohillside

Yanıtlar:


4

Yorumunuz gerçekten sadece Terminal'i etkinleştirmeye odaklandığınızdan (veya daha doğrusu masaüstü değil) bahsettiğinden ...

Intel Power Gadget'ın bilgilerinizi Terminal'den almanıza yardımcı olacağını düşünüyorum. Gönderen Intel :

Intel® Power Gadget ayrıca programınızdaki bu güç ve frekans verilerine erişmek için bir C / C ++ Uygulama Programlama Arabirimi (API) sağlar; API, Windows ve Mac OS X'te desteklenir. API'ler hakkında daha fazla bilgi için, bkz:

Aynı sayfada, Mac OS X'te Intel Power Gadget API'sını kullanma bağlantısı

Maalesef bu, kullanıma hazır bir çözümün bağlantısı değil; Google ile birkaç dakika geçirdim ve bunu zaten şanssız yapan birini bulabildim.


1
Bu şimdiye kadarki en iyi cevap. Harici yazılım yüklemeden ( sysctlaçık bir şeyle ) veya açık kaynaklı yazılım kullanarak frekans bilgisi almanın bir yolu olduğunu umuyordum .
amanusk

2

Deneyin top -F -n0 -s3 | grep "CPU usage"

topişlemler hakkında sıralanmış bilgileri görüntüleme ve güncelleme
-Fpaylaşılan kütüphanelerdeki istatistikleri (çerçeveler) hesaplamaz
-n0sıfır işlemleri görüntüler (bunlarla ilgilenmiyoruz çünkü)
-s3her 3 saniyede bir güncelleme (varsayılan 1)
grepbize yalnızca CPU kullanımı ifadesini içeren satırı gösterir

Örnek Çıktı:

$ top -F -n0 -s3 | grep "CPU usage"
CPU usage: 9.36% user, 20.0% sys, 70.63% idle 
CPU usage: 8.35% user, 8.19% sys, 83.45% idle 
CPU usage: 8.18% user, 7.77% sys, 84.4% idle 
CPU usage: 5.89% user, 8.1% sys, 86.8% idle

Çıktıyı başka bir yerde görüntülemek için bile ayrıştırabilirsiniz.

Unutmayın topÇalışıyorsa iken çok yoğun kaynak olduğunu.

Düzenleme: Ah, frekans istiyorsun. Bu bilgiyi iStat Menusgerçek zamanlı olarak alabilmek için bir yardımcı yüklememiz gerektiğini biliyorum .


2
Gerçekten sıklık sorunu, üst ve htop maalesef bunu sağlamaz.
amanusk

2

Bunun bir XY sorusu olduğunu düşünmeliyim ki, "Bu numarayı aldıktan sonra ne yapacaksın?" ve bunu doğrudan cevaplamak istiyorum, ama ölçmeye çalıştığınız şeye biraz dalın. MacOS'taki CPU kesintileri 150 ms aralıklarla şekillenir ve bu detayın çoğu WWDC 2013 ve daha sonra güç yönetimi, App Nap ( özellikle Oturum 209 hem iyi hem de ulaşılabilir ) ve macOS'ta pil ömrü optimizasyonları hakkında herkese açıktır .

zamanlayıcı birleştirme - WWDC 2013 oturum 209 macOS üzerinde 150 ms zaman ölçeğinde enerji tasarrufu

Bir CPU'nun kodu ve her çekirdeği geçici yük faktörlerine, ekranda görünenleri, ağ verilerinin geldiğini düşünen güç optimizasyonları, modern bir CPU'nun bir tane bile ortak olduğu fikrine göre saniyede yüzlerce kez değişebileceğinden ve değişeceğinden "zamanın herhangi bir noktasında saat hızı gerçekliği büyük ölçüde aşırı basitleştiriyor gibi görünüyor . Birçok MacBook Pro'da 8 çekirdek ve iMac Pro'da onlarca çekirdek ile bir ton karmaşıklığı bir sayıya kadar kaynatıyorsunuz.

Tek bir çekirdeğin saatin üzerinde çalışabileceği takviyelerin kolayca ölçülmesi daha az olasıdır, ancak termal azaltmayı çok basit bir şekilde termal günlüğe kaydetmeyle ölçebilirsiniz pmset.

pmset -g therm

Elbette CPU'nun termal azaltma ile kendiliğinden değişiklikleri günlüğe kaydedebilir pmset -g thermlogve daha sonra bunları başka bir yerde toplayabilirseniz CPU özelliklerine eşleyebilirsiniz.


Çekirdek başına frekans elde etme seçeneği de kabul edilir :). Frekans saniyede birçok kez değişebilir, ancak örneğin boşta veya tam Turbo'da (bir stres testinde olduğu gibi) frekansı bilmek istiyorsanız, o saniyenin bir örneği yeterli olacaktır. Güç ve sıcaklığın belirlenmesi, SMC anahtarlarını okuyarak (düz olmasa da) aslında mümkündür, frekans için de bir SMC anahtarı olmasını umuyordum. Gerçek şu ki, bu bilgileri alan bir yazılım var (Intel power gadget), soru, bunu ekstra yazılım olmadan nasıl yapabilir.
amanusk
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.