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 slackw 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.