Wpis z mikrobloga

Język #golang dynamicznie się rozwija, poza poprawkami do genericsów (weszły w 1.18) w nadchodzącej wersji 1.19 mamy nową opcję do runtime - SetMemoryLimit, dzięki której możemy w nowy sposób wpływać (nowy dla Go rzecz jasna) na działanie GC, jest to opcja podobna w działaniu do Xmx do opcji JVMa. W skrócie ustawia to limit zużycia pamięci przez aplikacje, więc odpowiednie ustawienie tej opcji będzie miało wpływ czy lub jak często GC będzie nam wchodził w paradę, podczas działania naszego programu. Reasumując, wraz z dostępną opcją GOGC możemy tunningować bardziej naszą aplikacje i niewykluczone, że niektóre firmy o pewnej skali mogą w tej wersji uzyskać znacznie lepszą wydajność ich aplikacji.

Więcej informacji o nadchodzącej wersji 1.19

A tutaj świetna strona pokazująca działanie GC w Go - są dostępne opisy oraz wizualizacje, gdzie można sobie zobaczyć wpływ pewnych wartości GOGC oraz SetMemoryLimit na działanie runtime, a konkretnie GC właśnie

#programowanie #devopsiarz
  • 1
@devopsiarz: warto dodać, że maitanerzy go czekali jakieś 5 lat z tą zmianą

że niektóre firmy o pewnej skali mogą w tej wersji uzyskać znacznie lepszą wydajność ich aplikacji.


@devopsiarz: powiedziałbym, że wszyscy z tego skorzystają. Widziałem aplikację, która używała jakieś 5 MB heapu (typowy przypadek: zwykły bezstanowy serwis), gdzie gc odpalał się co parę milisekund, bo domyślne GOGC słabo działa dla takiego użycia pamięci. A zwiększanie GOGC mogło wywalić