Dlaczego Slack zużywa tak dużo RAM?

Jeśli kiedykolwiek otworzyłeś Menedżera zadań albo Monitor aktywności z uruchomionym Slackiem, prawdopodobnie spojrzałeś drugi raz z niedowierzaniem. Slack regularnie zużywa od 400 MB do 1 GB przy uruchamianiu — a po kilku godzinach może przekroczyć 2 GB. To nie jest błąd. Oto dlaczego.

Slack to w gruncie rzeczy przeglądarka

Slack jest zbudowany przy użyciu frameworka zwanego Electron. Electron bierze silnik przeglądarki Chromium — ten sam rdzeń, który napędza Google Chrome — i pakuje go razem z aplikacją. Więc gdy otwierasz Slacka, nie uruchamiasz po prostu aplikacji do czatu. Uruchamiasz pełną przeglądarkę internetową, skonfigurowaną tak, by wyświetlać jedną stronę.

Samo Chromium wymaga 100–200 MB RAM, zanim ruszy na nim jakakolwiek logika aplikacji. Dodaj własny kod Slacka, a punkt wyjścia jest już znaczący, zanim otworzysz choćby jedną rozmowę.

Każda przestrzeń robocza mnoży obciążenie

Tak jak Chrome obsługuje wiele kart osobnymi procesami, Slack obsługuje wiele przestrzeni roboczych — i robi to odrębnymi procesami dla każdej. Jeśli jesteś podłączony do trzech przestrzeni roboczych, możesz mieć osiem lub więcej procesów działających jednocześnie. Możesz to sprawdzić samodzielnie:

  • Windows: Otwórz Menedżera zadań, znajdź Slacka i rozwiń wpis
  • macOS: Otwórz Monitor aktywności i wyszukaj „Slack”
  • Linux: Uruchom ps aux | grep -i slack w terminalu

Każdy z tych procesów ma własne zużycie pamięci. Sumuje się ono szybko.

Niewidzialna praca w tle

Nawet gdy nic nie czytasz ani nie wysyłasz, Slack utrzymuje kilka procesów działających nieprzerwanie:

  • Synchronizacja wiadomości w czasie rzeczywistym: odpytywanie serwerów we wszystkich kanałach w każdej przestrzeni roboczej, do której dołączyłeś
  • Sprawdzanie pisowni: biernie działający w tle pełny silnik sprawdzania pisowni
  • Automatyczny aktualizator: po cichu sprawdza i przygotowuje nowe wersje
  • Raportowanie awarii: zbieranie danych diagnostycznych i przygotowywanie raportów

Właśnie dlatego zużycie pamięci przez Slacka pełznie w górę przez cały dzień. Świeże uruchomienie przy 400 MB może niepostrzeżenie urosnąć do 1,5 GB późnym popołudniem — nawet jeśli nie zrobiłeś niczego niezwykłego.

Dlaczego Slack zbudował to w ten sposób — i dlaczego tego nie zmieni

Electron to praktyczny wybór inżynierski. Jedna baza kodu, jeden zespół, trzy systemy operacyjne. Funkcje trafiają jednocześnie do Windows, macOS i Linux. Dla firmy o skali Slacka to realna przewaga operacyjna.

Przepisanie aplikacji natywnie zajęłoby lata pracy inżynierskiej i nie dodałoby użytkownikom ani jednej widocznej funkcji. Koszt pamięciowy to świadomy kompromis, a architektura się nie zmieni.

Co możesz z tym faktycznie zrobić

Istnieją obejścia — zamykanie nieużywanych przestrzeni roboczych, wyłączanie akceleracji sprzętowej, całkowite zamykanie Slacka, gdy odchodzisz. Omawiamy je szczegółowo w naszym poradniku o zmniejszaniu zużycia pamięci przez Slacka.

Trwalszym rozwiązaniem jest klient, który nie jest zbudowany na Electronie. msga to natywny klient Slacka — łączy się z tymi samymi serwerami Slacka, których już używasz, ale działa bez wbudowanego silnika przeglądarki. W stanie spoczynku zużywa około 60 MB RAM.

Masz dość tego, że Slack pożera Twój RAM? msga to natywny klient Slacka, który uruchamia się w niecałą sekundę i utrzymuje około 60 MB w stanie spoczynku.

Pobierz msga — za darmo