Chciałbym ograniczyć czas procesora poświęcony na niektóre procesy (np. Firefox, Safari, ...).
Nie rozumiem, dlaczego takie programy, nawet gdy nie są używane (nic się nie ładuje, nie ma animacji, działa w tle, ...), są tak głodne zasobów. Dlaczego przeglądarka musi zjeść 50% lub więcej mojego procesora? Czy mogę ograniczyć to do 10%?
macos
lion
battery
performance
Pietro
źródło
źródło
Odpowiedzi:
To nie jest dokładnie to, czego chciałeś, ale w odniesieniu do Google Drive i Chrome to, co zrobiło dla mnie lewę:
Dysk Google („Kopia zapasowa i synchronizacja”)
usuń priorytet:
powrócić do normy:
Chrom
usuń z priorytetu wszystkie bieżące procesy:
przywrócono do normy wszystkie bieżące procesy:
źródło
cputhrottle
jest narzędziem, którego potrzebujesz. Możesz zainstalować go z Homebrew .Możesz monitorować szereg procesów według nazwy, uruchamiając poniższy skrypt Bash. Nie jestem pewien, jak zmienić to w element logowania, ponieważ
cputhrottle
wymaga uprawnień administratora. Uruchom go jako skrypt w przepływie pracy Automatora, cokolwiek:[Edytowane]
Dodałem inną wersję tego skryptu (
bash
skrypt), która może być przydatna dla osób szukających ograniczenia procesora dla wielu aplikacji.Ten nowy skrypt umożliwia także określenie listy zawierającej nazwę aplikacji i limit procesora.
Główną różnicą jest to, że możesz dodać limit procesora na aplikację i będzie on działać tylko raz na aplikację. Dodałem także opcję zabijania wszystkich
cputhrottle
procesów.Scenariusz zakłada, że oba
cputhrottle
ipidof
są zainstalowane przed uruchomieniem.Źródło:
źródło
cputhrottle
forumula została usunięta z Homebrew 17 lutego 2019 r., Ponieważ już nie działa . Yosemite to ostatnia obsługiwana wersja systemu macOScputhrottle
.Rzeczywiście możesz! Istnieje CPUThrottle , który pozwala określić PID do ograniczenia.
Zauważ, że próbują tak często korzystać z jakiegoś powodu, jest to przydatne narzędzie, ale to, czy sprawi, że będzie ci lepiej, czy gorzej z dnia na dzień, będzie czymś, co odkryjesz.
źródło
Chociaż nie jest to bezpośrednia odpowiedź na pytanie OP, jeśli masz problem z konkretnym procesem, który zajmuje zbyt dużo czasu procesora i sprawia, że komputer jest bezużyteczny, i nie masz nic przeciwko, jak długo ten proces trwa do ukończenia zadanie, nad którym pracuje, możesz użyć
renice
do zmiany priorytetu tego procesu, dzięki czemu zachowuje się ładnie (stąd nazwa).Najpierw musisz znaleźć PID procesu, który zużywa zasoby procesora. Możesz to zrobić w Monitorze aktywności lub w Terminal.app za pomocą
ps
polecenia - np. Aby znaleźć PID przeglądarki Safari, wpisz:Drugi wiersz powyżej to dane wyjściowe, aw tym konkretnym przypadku PID to 17452.
Następnie kolejnym zadaniem jest zmiana priorytetu procesu (powiedzmy, że chcemy, aby Safari ładnie się zachowywało). Aby to zrobić, w Terminal.app wpisz:
-n
Opcja zmienia piękny poziom przez dodanie 10 do bieżącej wartości (domyślnie 0). Zakres wartości wynosi od -20 do 20, przy czym najniższa wartość oznacza najwyższy priorytet. Jako zwykły użytkownik możesz użyć wartości od 0 do 20. Aby przypisać wartość ujemną, musisz mieć uprawnienia roota (np.sudo
Polecenie use ). Przeczytaj więcej na tematnice
irenice
wpisującman nice
orazman renice
w Terminal.app.nice
irenice
nie ograniczają odsetka procesora dostępnego dla danej aplikacji per se, pozwalają jednak na zmianę priorytetu planowania, czyli innymi słowy, ile czasu procesorowi zajmie proces. Wszystko to zależy od obciążenia procesora w systemie, więc jeśli system jest nieduży, najprawdopodobniej nie zobaczysz żadnej różnicy.źródło
Istnieje prosty jeden linijka do robienia tego wszystkiego:
Wpisz nazwę swojej aplikacji zamiast Chromium i żądany procent zamiast 10 i możesz zacząć!
źródło
pgrep Dropbox | sudo xargs -n 1 -I'{}' sh -c 'cputhrottle {} 10 &'
. Nie jestem jednak pewien, czy system macOS jestpgrep
zainstalowany.Jest to oparte na poprzedniej odpowiedzi, ale dodanie pułapki dla ctrl + c, aby upewnić się, że dławiony proces pozostanie w stanie kontynuacji, i dodanie,
set -e
aby ten skrypt zamknął się czysto, jeśli sam proces zakończy się:źródło
Link opublikowany przez Nicholasa Smitha już nie działa. Znalazłem więc inną aplikację, która rozwiązuje problem osób, które przeszukują ją ponownie. aplikacja nazywa się Apppolice.
http://www.macupdate.com/app/mac/49836/apppolice
źródło
To jest mój ostatni skrypt, utrzymuj w czystości polecenie cputhrottle uruchom tylko nowy, jeśli nie istnieje
źródło
Skrypt napisany przez Dimitri działa dobrze (w systemie macOS), ale po zamknięciu aplikacji nadal działa z błędami. Zmieniłem go, aby zakończyć (z komunikatem o błędzie dotyczącym braku PID):
źródło
to działało dla mnie
źródło