Mac OS X'te bir işlemin önceliğini belirlemenin bir yolu var mı?


48

Mac OS X'te% 100 CPU'da çalışan bir arka plan işlemim var. Diğer tüm uygulamalar bu nedenle çok yavaş.

Uygulamalarımın daha iyi çalışabilmesi için bu işlemi% 50'den fazla almayacak şekilde ayarlamak istiyorum. Bunu nasıl yapabilirim?

Yanıtlar:


48

Komut satırında ( Terminal.appveya her neyse) niceve renicediğer unix'lerdeki gibi ve kullanın.

niceBir işlem başlatırken kullanın :

nice -n <priority> <command> <arguments to command>

Varsayılan öncelik sıfırdır, pozitif değerler "daha iyi" (düşük öncelikli) ve negatif değerler "daha az iyi" dir (daha yüksek öncelik). Mac OS +10 ila -10 arasında çalışıyor gibi görünüyor.

reniceÇalışmakta olan bir işlemin önceliğini değiştirmek için kullanın ( renice10.5 man sayfasından):

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]  
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Burada ilgilendiğiniz kısım pidbiraz. Bu iş için işlem kimliği olduğu ve bunu kullanarak bulabilirsiniz ps -u <your username>ve süreç isim arayan, ama tercih top -osüreci sen ilgilenen yılında üst kısmına yakın olacak, çünkü bu durumda.

Not: Süper kullanıcı ayrıcalıkları olmadan, bir işlemin önceliğini asla artıramazsınız. Normal kullanıcılar için niceve renicetek yönlü caddelerdir. Öncelikteki küçük değişikliklerin çalışma süresinde büyük etkileri olabilir. Bu yüzden anlayana kadar bu konuda kolay gidin.


Ve zaten çalışan bir işlem ile nasıl yapabilirim? 2 saat çalışıyor ve tekrar başlatmak ve 2 saatlik
işlemimi

15

Komutu kullanabilirsiniz:

renice -n # PID

Nerede:

  • # , 0'dan büyük olması gereken bir sayıdır (aksi halde işleminizi daha yüksek önceliğe taşıyacaksınız)
  • PID , topterminal uygulamasına yazarak görüntüleyebileceğiniz işlem kimliğidir (utilities / terminal.app)

Bir sistem işlemi veya başka bir kullanıcı işlemi ise, şunu yazmanız gerekir:

sudo renice -n 10 PID

Parolanızı soracak (sudo iseniz). Sayı gelince 10 veya 19 öneriyoruz (daha düşük öncelikli).

Bunun CPU kullanımını değil önceliği değiştireceğini unutmayın. CPU gerektiren başka işlemler yapmıyorsanız veya Mac'inizde (Core 2 Quad Core) birden fazla CPU varsa, işlem yine de CPU'nun% 100'ünü kullanabilir.


6
renice 20 $(pgrep ImageOptim)

Veya ImageOptim yerine programın ismini kullanın.


1
Ek olarak, renice -20örneğin oktav gibi büyük bir program derlerken bir işlem mümkün olan en yüksek önceliği verir. renice 20bir sürece en düşük öncelik verir.
nyxee

5

Ayrıca, ücretsiz BeNicer ve İşlem Sihirbazı (önceki favorim) ve yeni favorim olan Dondurucunun $ 1.99 sürümü gibi bir dizi GUI aracı da var . Bunların hepsi çalışan uygulamalar üzerinde çalışıyor.


3
BeNicer ve İşlem Sihirbazı hem PowerPC uygulamalarıdır hem de OSX'in son sürümlerinde çalışmaz
arolson101

Freezer hala yeni işletim sistemi sürümleri üzerinde çalışıyor mu?
17:33

lütfen başka bir alternatif için cevabımı kontrol et, AppPolice
JacopKane

2
  • İşleminiz bir sistem işleminden ziyade bir uygulama veya uygulama yardımcı programıysa ve yapmak istemiyorsanız niceveya reniceher sistem önyüklemesinde istemiyorsanız, AppPolice'e bir şans verebilirsiniz . Açık kaynak ve ücretsiz. Buradan indirebilirsiniz .

  • Başka bir alternatif GUI denilen çok güzel bir komut satırı görev yöneticisi olacaktır htop. Tüm işlemleri görebilir ve nicedeğerlerini F7ve ve F8kısayollarıyla ayarlayabilirsiniz . (Negatif nicedeğerlerin daha öncelikli ve pozitif değerler için zıt olduğuna lütfen dikkat edin )

Yüklemek için:

  • Henüz sahip değilseniz, homebrew'i kurun .
  • brew install htopTerminal'de bu komutu çalıştır
  • Artık htopTerminal'deki süreçleri görmek ve yönetmek ya da sudo htoptüm sistemi kapamak için yapabilirsiniz.

0

Uygulamanın PLIST dosyasındaki değişkeni kullanarak kalıcı arka plan özelliği (daemon) kalıcı olarak ayarlayabilirsiniz. Bir terminal penceresinde MAN tipinin nasıl olduğunu öğrenmek için.

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.