Cała oryginalna treść jest tworzona po ukraińsku. Nie wszystkie treści zostały jeszcze przetłumaczone. Niektóre posty mogą być dostępne tylko po ukraińsku.Dowiedz się więcej

Czym jest jemalloc i jak ma się do Ruby / Ruby on Rails

Okładka posta: Czym jest jemalloc i jak ma się do Ruby / Ruby on Rails
Ta treść została automatycznie przetłumaczona z ukraińskiego.
Co to jest jemalloc?. jemalloc (skrót od Jason Evans malloc) — to wydajny alokator pamięci, który zastępuje standardowy malloc, zaimplementowany w standardowej bibliotece glibc. Używają go takie duże projekty jak Redis, Firefox, Facebook, a nawet Android.
Jego główne zalety:
  • Mniej fragmentacji pamięci
  • Lepsza wielowątkowa wydajność
  • Przezroczyste logowanie użycia pamięci (poprzez profilowanie jemalloc)

Dlaczego jemalloc jest ważny dla Ruby / Rails?

Ruby używa malloc do zarządzania pamięcią, szczególnie podczas pracy z obiektami. W warunkach dużego obciążenia (np. wielowątkowy Puma lub Sidekiq) standardowy alokator może powodować fragmentację pamięci i wolne czyszczenie.
Zastępując malloc jemalloc, możesz uzyskać:
  • Mniejsze zużycie pamięci w długoterminowych procesach
  • Stabilniejszy RSS (Resident Set Size)
  • Potencjalnie szybszy GC (Garbage Collector), ponieważ jemalloc lepiej zarządza rozmieszczeniem obiektów

Kiedy warto włączyć jemalloc (jeśli jeszcze tego nie zrobiono)?

Jeśli zauważasz, że twoje procesy Ruby / Rails "puchną" w pamięci po kilku godzinach lub dniach pracy — jemalloc może znacząco pomóc.
Szczególnie jest to zauważalne w:
  • Sidekiq / Resque
  • Puma / Unicorn pod obciążeniem
  • Usługach z długotrwałymi procesami

Ten post nie ma jeszcze żadnych dodatków od autora.

Gdzie znaleźć starszą wersję Google Chrome i ją pobrać? Na przykładzie starego Maca
25 kwi 23:02

Gdzie znaleźć starszą wersję Google Chrome i ją pobrać? Na przykładzie starego Maca

meme code
meme code@memecode
9 maj 19:27

[FIXED] nie można załadować takiego pliku -- html/pipeline (LoadError) występuje podczas rails generate thredded:install

meme code
meme code@memecode
Zadanie: Przekształcenie liczby rzymskiej na dziesiętną (Ruby)
20 maj 12:05

Zadanie: Przekształcenie liczby rzymskiej na dziesiętną (Ruby)

meme code
meme code@memecode
Zadanie na sprawdzenie poprawności rozmieszczenia nawiasów (Ruby)
21 maj 10:27

Zadanie na sprawdzenie poprawności rozmieszczenia nawiasów (Ruby)

meme code
meme code@memecode
Jak znaleźć podtablicę o maksymalnej sumie (Maximum Subarray Sum) w Ruby
22 maj 11:01

Jak znaleźć podtablicę o maksymalnej sumie (Maximum Subarray Sum) w Ruby

meme code
meme code@memecode
Reklama w Google dla początkujących: Krok po kroku do udanego startu
28 maj 10:21

Reklama w Google dla początkujących: Krok po kroku do udanego startu

meme code
meme code@memecode
5 cze 01:52

[Fixed] niezainicjowana stała ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)

meme code
meme code@memecode
Podgląd w zakładce network po aktualizacji Chrome stał się bardzo mały
5 cze 18:23

Podgląd w zakładce network po aktualizacji Chrome stał się bardzo mały

meme code
meme code@memecode
Czym jest format HEIC i dlaczego proste zmienienie jego nazwy na .jpg to zły pomysł
15 cze 18:17

Czym jest format HEIC i dlaczego proste zmienienie jego nazwy na .jpg to zły pomysł

meme code
meme code@memecode
Dlaczego wybór CMS jest ważny podczas tworzenia strony internetowej?
29 cze 12:34

Dlaczego wybór CMS jest ważny podczas tworzenia strony internetowej?

meme code
meme code@memecode
Błąd 403 na stronie: co to oznacza i jak go naprawić
24 lip 23:50

Błąd 403 na stronie: co to oznacza i jak go naprawić

meme code
meme code@memecode
Co to jest vibe coding?
25 lip 21:51

Co to jest vibe coding?

meme code
meme code@memecode