Saya ingin membatasi jumlah waktu CPU yang didedikasikan untuk proses tertentu (mis. Firefox, Safari, ...).
Saya tidak bisa mengerti mengapa program seperti itu, bahkan ketika tidak digunakan (tidak ada yang memuat, tidak ada animasi, berjalan di latar belakang, ...), sangat membutuhkan sumber daya. Mengapa browser harus memakan 50% atau lebih dari CPU saya? Bisakah saya membatasi hingga 10%?
macos
lion
battery
performance
Pietro
sumber
sumber
Jawaban:
Ini tidak persis apa yang Anda inginkan, tetapi, dalam hal google drive dan chrome ini apa trik untuk saya:
Google Drive ("Cadangan dan Sinkronisasi")
tidak memprioritaskan:
kembali ke normal:
Chrome
hapus prioritas semua proses saat ini:
set kembali ke normal semua proses saat ini:
sumber
cputhrottle
adalah alat yang Anda butuhkan. Anda dapat menginstalnya dengan Homebrew .Anda dapat memantau serangkaian proses dengan nama dengan menjalankan skrip Bash di bawah ini. Saya tidak yakin bagaimana mengubahnya menjadi item masuk karena
cputhrottle
memerlukan izin pengguna super. Jalankan sebagai skrip, dalam alur kerja Automator, apa pun:[Diedit]
Saya telah menambahkan versi yang berbeda untuk skrip ini (
bash
skrip), yang mungkin berguna bagi orang yang mencari untuk membatasi CPU untuk beberapa aplikasi.Skrip baru ini juga memungkinkan Anda menentukan daftar yang berisi nama aplikasi dan batas CPU untuknya.
Perbedaan utama adalah bahwa Anda dapat menambahkan batas cpu per aplikasi, dan itu akan berjalan hanya sekali per aplikasi. Saya juga menambahkan opsi untuk membunuh semua
cputhrottle
proses.Script mengasumsikan bahwa keduanya
cputhrottle
danpidof
diinstal sebelum menjalankannya.Sumber:
sumber
cputhrottle
forumula telah dihapus dari Homebrew pada 17 Februari 2019 karena tidak berfungsi lagi . Yosemite adalah versi terakhir dari macOS yang didukungcputhrottle
.Anda memang bisa! Ada CPUThrottle , yang memungkinkan untuk menentukan PID untuk dibatasi.
Catatan, mereka mencoba menggunakan sebanyak itu karena suatu alasan, ini adalah alat yang berguna tetapi apakah itu akan membuatnya lebih baik atau lebih buruk bagi Anda pada hari ke hari akan menjadi sesuatu yang Anda temukan.
sumber
Meskipun bukan jawaban langsung untuk pertanyaan OP, jika Anda mengalami masalah dengan proses tertentu yang menghabiskan terlalu banyak waktu CPU Anda, dan membuat komputer Anda tidak dapat digunakan, dan Anda tidak keberatan berapa lama proses itu untuk menyelesaikan tugas yang sedang dikerjakannya, Anda dapat menggunakan
renice
untuk mengubah prioritas proses itu, menjadikannya berperilaku baik (karenanya namanya).Pertama, Anda perlu menemukan PID dari proses yang menggunakan sumber daya CPU. Anda dapat melakukannya di Monitor Aktivitas, atau di Terminal.app dengan
ps
perintah - misalnya untuk menemukan PID browser Safari, ketik:Baris kedua di atas adalah output, dan PID adalah 17452 dalam kasus khusus ini.
Kemudian, tugas selanjutnya adalah mengubah prioritas proses (misalkan Safari yang ingin kita jadikan berperilaku baik). Untuk melakukan ini, dalam jenis Terminal.app:
The
-n
pilihan mengubah tingkat bagus dengan menambahkan 10 dengan nilai saat ini (0 secara default). Kisaran nilai adalah -20 hingga 20, dengan nilai terendah yang berarti prioritas tertinggi. Sebagai pengguna biasa, Anda dapat menggunakan nilai 0 hingga 20. Untuk menetapkan nilai negatif, Anda harus memiliki hak akses root (mis. Gunakansudo
perintah). Baca lebih lanjut tentangnice
danrenice
dengan mengetikman nice
danman renice
di Terminal.app.nice
danrenice
tidak membatasi persentase CPU yang tersedia untuk aplikasi tertentu, mereka memperbolehkan untuk mengubah prioritas penjadwalan, atau dengan kata lain berapa banyak waktu CPU dari suatu proses akan didapat. Ini semua relatif terhadap beban CPU pada sistem Anda, jadi jika sistem ini kurang dimanfaatkan, Anda kemungkinan besar tidak akan melihat perbedaan.sumber
Ada satu garis sederhana untuk melakukan semua itu:
Tulis nama aplikasi Anda alih-alih Chromium dan persentase yang diinginkan alih-alih 10 dan Anda siap berangkat!
sumber
pgrep Dropbox | sudo xargs -n 1 -I'{}' sh -c 'cputhrottle {} 10 &'
. Namun saya tidak yakin apakah macOS sudahpgrep
diinstal.Ini didasarkan pada jawaban sebelumnya, tetapi menambahkan jebakan untuk ctrl + c untuk memastikan proses yang dicekik akan dibiarkan dalam status melanjutkan, dan menambahkan
set -e
agar skrip ini akan keluar dengan bersih jika proses itu sendiri keluar:sumber
Tautan yang diposkan Nicholas Smith tidak berfungsi lagi. Jadi saya menemukan satu aplikasi lain yang berfungsi untuk orang-orang yang mencari lagi. aplikasi memanggil Apppolice.
http://www.macupdate.com/app/mac/49836/apppolice
sumber
Ini adalah skrip terakhir saya, tetap bersihkan perintah cputhrottle hanya jalankan yang baru jika tidak ada
sumber
Skrip yang Dimitri tulis tidak bekerja dengan baik (pada macOS), tetapi tetap berjalan dengan kesalahan setelah aplikasi ditutup. Saya mengubahnya untuk menyelesaikannya (dengan pesan kesalahan tentang PID tidak ditemukan):
sumber
sh ini bekerja untuk saya
sumber