TGViewer
Истовый инженер Истовый инженер @ultimate_engineer · 11.9K subscribers
Post #212 3.57K
​​📄Упражнения для хорошей памяти: три способа оптимизировать работу с памятью на Go с помощью memory pools

Когда программа испытывает пиковую нагрузку, она потребляет много памяти. В языке Go это «замечает» Garbage Collector, останавливает программу и освобождает память. Сервис делает свою работу, но она влияет на эффективность программы, поэтому часто возникает необходимость снизить нагрузку на GC.

Go-разработчик в YADRO Александр Иванов столкнулся с проблемой: когда по сети приходило много данных, GC фиксировал пиковое потребление памяти, останавливал программу, освобождал память и продолжал выполнять программу.

Это влияло на эффективность работы, поэтому инженер решил уменьшить количество потребляемой памяти в моменты пиковой нагрузки и протестировал несколько способов, как это сделать. В этом материале он собрал результаты поисков и рассказал, для каких проектов подойдёт та или иная реализация memory pool. Вы узнаете:

▪О принципах, по которым язык Go работает с памятью;
▪Как завести Channel Pool, поместить память в sync.Pool или создать memory arena;
▪Какие бенчмарки получились у каждого решения по итогам тестов;
▪Что стоит учесть в разработке memory pool для вашего проекта и как выбрать подходящую реализацию;
▪Какая реализация в итоге помогла решить проблему с пиковыми нагрузками.

В конце статьи найдёте ссылку на репозиторий с кодом, где автор сравнивает разные memory pools.

Читать статью ➡

#программы #go
  • 👍 8
  • 🔥 3
  • 🤓 2
  • ❤ 1
  • 🤯 1
More from @ultimate_engineer
  1. Oct 9, 2026📖 Что нужно, чтобы стать AppSec-инженером — Почему все вокруг путают нас с тобой? — А ты…
  2. Oct 8, 2026💡 Быстрый старт через ручное тестирование Компании автоматизируют всё, что можно, и вокру…
  3. Oct 6, 2026🪟 Как первый проект помогает найти свое место в инженерии — рассказывают студенты Нового…
  4. Oct 5, 2026💻 Почему язык из 1970-х до сих пор остается основой системного программирования Язык C по…
  5. Oct 4, 2026🤪🧐😞🤯😍 69 лет со дня запуска первого спутника: какие задачи сегодня решают космические…
  6. Oct 1, 2026🚀 Сколько инженеров нужно, чтоб поднять ракету в воздух? Для сложного инженерного проекта…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →