home.social

#green_tea — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #green_tea, aggregated by home.social.

  1. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  2. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  3. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  4. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  5. А может чайку

    Все уже слышали, что в Go 1.25 завезли новый экспериментальный сборщик мусора - Green Tea GC . Теории о том, как он работает, много (и в том числе на Хабре). Но когда мы с коллегой попытались просто включить GOEXPERIMENT=greenteagc на наших обычных бенчмарках, нас ждало разочарование: результаты были то чуть лучше, то чуть хуже, то вообще одинаковые. Сплошная лотерея. Мы задались целью: найти условия, в которых Green Tea GC побеждает безоговорочно . Не на 1-2% в пределах погрешности, а так, чтобы график "пробил потолок". И у нас получилось добиться стабильного ускорения пауз GC на 40-50% . Вот рецепт нашего успеха

    habr.com/ru/articles/982480/

    #green_tea