com.apple.iconServicesAgent używa dużo pamięci RAM w wersji 10.9

11

Przeprowadziłem świeżą instalację systemu OS X 10.9, a teraz proces com.apple.iconServicesAgentzużywa> 300 MB pamięci RAM, czyli całkiem sporo. Proces ten wykorzystuje drugą co do wielkości pamięć wszystkich procesów, po zadaniu jądra.

Google mówi mi, że inni też mają ten problem, ale jak dotąd nie znalazłem rozwiązania.

Czy istnieje sposób na zmniejszenie zużycia pamięci RAM przez ten proces?

ukryty
źródło
co jeśli zabiję wątek ......
Czy w tym systemie występuje presja pamięci? Części systemu operacyjnego są zaprojektowane tak, aby zużywały dużą część pamięci RAM, gdy nie jest inaczej potrzebne do przyspieszenia. Czy zamieściłbyś zrzut ekranu z ekranu Monitora aktywności u dołu karty Pamięć? Aby zdiagnozować wszelkie problemy z użyciem pamięci RAM, potrzebna jest analiza pamięci fizycznej / zużycia / ciśnienia oraz ilości pamięci podręcznej aplikacji / pliku i pamięci przewodowej.
bmike

Odpowiedzi:

11

Spostrzeżenia

Możesz zaobserwować naturalne wzrosty i spadki użytkowania.

Należy nie traktować wykorzystania jako problem.

Tło: o usługach ikonowych

Aby dowiedzieć się, co robią usługi ikon (demon com.apple.IconServices, procesy com.apple.IconServicesAgent i powiązane pliki), uruchom następującą komendę w oknie terminala o szerokości może 257 znaków lub szerszej:

sudo fs_usage -w -f filesys com.apple.IconServices | grep write

Następnie w Finderze:

  1. przeglądaj folder, który nie był przeglądany od momentu uruchomienia komputera Mac
  2. przeglądaj
  3. przejdź z powrotem do tego samego folderu.

Powinieneś znaleźć to:

  • początkowe przeglądanie powoduje zapisy (do pamięci podręcznej)
  • drugie i kolejne przeglądy nie powodują dodatkowego buforowania, dopóki zawartość folderu nie ulegnie zmianie.

Aby przerwać polecenie, Control-C

Aby uzyskać niefiltrowany widok rzeczy:

sudo fs_usage -w -f filesys com.apple.IconServices

Korzyści z usług ikon w Mavericks

Wydaje mi się, że podejście Apple do buforowania ikon jest szczególnie korzystne dla aplikacji / procesów, w których podstawowymi funkcjami są odczytywanie metadanych z różnych typów systemów plików. Aplikacje takie jak Finder, procesy takie jak Dock i tak dalej.

Jako część szerszego podejścia do maksymalizacji wydajności usługi ikona powinna umożliwić prezentację z minimalnym opóźnieniem w podzbiór metadanych, który jest najbardziej interesujące dla użytkownika.

Dla stosu ostatnich aplikacji w Docku: prawdopodobnie nazwy, ikony i daty / godziny są niezbędne w ramach podzbioru.

W przypadku widoków w Finderze: podzbiory mogą się całkowicie różnić, w zależności od wymagań użytkownika.

Dodatkowe przemyślenia

W HFS Plus (Mac OS Extended), w odniesieniu do wycofanej dokumentacji, mamy B-drzewo zorientowane na wydajność , plik atrybutów i tak dalej. Ze wszystkim innym, które zostały wykonane do tego systemu plików, to teraz debatably nad -extended .

Korzyści związane z wydajnością usług ikon powinny być względnie niezależne od systemu plików . To miło. Oczekuję, że użytkownicy ZFS na Mavericks skorzystają na korzyściach i tak dalej…

Graham Perrin
źródło
Gdy iconservicesagent zajmuje ponad 20 GB, powiedziałbym, że to problem. Można to łatwo powtórzyć na wszystkich moich komputerach Mac. Mam katalog filmów na dysku zewnętrznym. Otwieram folder w Finderze i iconservicesagent zaczyna się wspinać w niebo. Wkrótce potem Finder przechodzi w tryb „nie odpowiada”. Wszystkie te filmy mają swoje miniatury jako plakaty filmowe. Gdybym usunął wszystkie niestandardowe wklejone miniatury, iconservicesagent powraca do normalnego działania.
sprotsman
4

Wydaje się, że ma to coś wspólnego z usługą renderującą ikony w Finderze, kiedy moje maksimum osiągnęło procesor, żadne ikony nie renderowały się w Finderze.

Zmuszam do wyjścia z procesu i ponownie otworzyłem Findera i wszystko znów wyglądało dobrze.

ChrisChinchilla
źródło
Zmuszanie com.apple.IconServicesAgentdo rezygnacji może maskować lub po prostu odkładać podstawowy problem. Problem nie dotyczy agenta, ale danych, które agent próbuje obsłużyć .
Graham Perrin
2
W tej kwestii jestem z @GrahamPerrin. Narzekanie na to, że iconservicesagent robi zbyt wiele, to dosłownie „strzelanie do komunikatora” - usługi systemowe dostarczają dane do uruchomionych aplikacji. Jeśli zamkniesz wszystkie aplikacje i uruchomisz ponownie system operacyjny - zobacz, jaki jest przydział pamięci ram com.apple.IconServicesAgent, a następnie możesz obserwować, jak rośnie, gdy system i inne aplikacje są proszone o rysowanie ikon na ekranie. Po zebraniu początkowej alokacji pamięci RAM możesz śledzić, czy istnieje presja pamięci, która powoduje, że pamięć podręczna zaczyna się sam przerzedzać.
bmike
1
Myślę, że zabicie tego procesu jest w porządku, jeśli nikomu nie zaszkodzi i sprawi, że użytkownik będzie szczęśliwszy. Prawdopodobnie po prostu nie uwalnia zasobów wystarczająco szybko (lub wcale) po niektórych intensywnych operacjach. Dla ciekawskich jest też gist.github.com/walesmd/7315613 - nie zalecałbym jednak wykonywania tych instrukcji, chyba że agent zawsze zajmuje dużo pamięci.
Nickolay