02 sie 2022·1 min czytania

Go 1.19 wprowadzi zmieniony model pamięci i nowe typy wartości atomowych

Opracowany przez Google język programowania, Go, ma zostać zaktualizowany w sierpniu o wersję 1.19.

Go 1.19 wprowadzi zmieniony model pamięci i nowe typy wartości atomowych

Oczekiwana aktualizacja Go 1.19 ma zostać wydana w sierpniu, przynosząc zmieniony model pamięci i nowe typy zaprojektowane w celu poprawy wykorzystania wartości atomowych. Obecnie w wersji preview, Go 1.19 można pobrać z go.dev, choć w tym momencie pozostaje niestabilna. Według informacji o wydaniu, aktualizacja Go 1.19 dostosowuje model pamięci języka do tych używanych przez C, C++, Java, JavaScript, Rust i Swift. Wprowadza również kilka nowych typów w pakiecie sync/atomic, aby uprościć korzystanie z wartości atomowych, takich jak atomic.Int64 i atomic.Pointer(T). Model pamięci Go jest niezbędny do określenia warunków, w których odczyty jednej zmiennej goroutine są gwarantowane, aby obserwować wartości wytworzone przez zapisy do tej samej zmiennej z innej goroutine. Warto zauważyć, że Go zapewnia tylko sekwencyjnie spójne atomiki, w przeciwieństwie do bardziej zrelaksowanych form oferowanych przez inne języki. Oprócz poprawionego modelu pamięci, Go 1.19 prezentuje drobną zmianę w języku, poprawiając zakres parametrów typu w deklaracjach metod. Aktualizacja ta nie ma wpływu na istniejące programy. Wydanie Go 1.19 następuje po przełomowej premierze Go 1.18 w marcu, która wprowadziła bardzo poszukiwane możliwości generyczne. Go 1.19 przynosi również kilka innych nowych funkcji i ulepszeń, takich jak:

  • Wsparcie dla miękkiego limitu pamięci, który obejmuje stertę Go i pamięć zarządzaną przez runtime, z wyłączeniem zewnętrznych źródeł, takich jak mapowania binarne i pamięć zarządzana przez inne języki.
  • Zmniejszona alokacja schedulera procedur robotniczych GC na bezczynnych wątkach OS podczas okresowego cyklu GC, gdy aplikacja jest w dużej mierze bezczynna.
  • Implementacja tabeli skoków dla dużych liczb całkowitych i łańcuchowych instrukcji switch przez kompilator, co skutkuje poprawą wydajności do 20%.
  • Wyraźniejsze nagłówki, odnośniki i listy obsługiwane w komentarzach doc.
  • Rozpoznawanie ograniczenia build, unix, w liniach go:build.
  • Wsparcie dla Linuksa dla 64-bitowej architektury LoongArch.

Dla programistów chcących budować aplikacje internetowe, mobilne i backendowe przy użyciu platformy no-code, AppMaster.io zapewnia rozbudowane, zintegrowane środowisko programistyczne, które generuje skalowalne rozwiązania programistyczne bez potrzeby tworzenia kodu. Dzięki możliwości tworzenia kompleksowych aplikacji w ciągu kilku sekund, AppMaster.io jest idealne dla szerokiego grona klientów, od małych firm po przedsiębiorstwa.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started