Golang Дайджест
7.87K subscribers
36 photos
1 file
165 links
Самое интересное из мира Go: новости, статьи, проекты, сервисы, изменения в языке и др.

Посты публикуются не часто - только самое важное, с чем я лично ознакомился.

Поэтому можно не мьютить канал =)

Обратная связь: @justskiv
Download Telegram
Готовим слайсы в Go: подробно о динамических массивах, строчках и ускорении

https://habr.com/ru/companies/yadro/articles/874480/

Ещё одна неплохая и очень подробная статья про слайсы с глубоким погружением.

Что разобрано:

- Внутреннее устройство слайсов и как растёт их capacity. Также затронут интересный момент про округление вместимости из-за особенностей хранения объектов в хипе, про который редко пишут

- Разные способы создания слайсов и когда какой вариант лучше (пустой слайс, make(len), make(0, cap) и т.д.).

- Передача слайсов в функции: по значению vs по указателю

- Работа со строками, конкатенация и оптимизации компилятора

- Подробный разбор bytes.Buffer vs strings.Builder и их особенностей

- Тонкости копирования при []byte → string и обратно

- Использование sync.Pool для переиспользования памяти — как не забыть "вернуть" объект в пул и почему со strings.Builder это не работает

- Сравнение разных способов конкатенации строк на больших и маленьких объёмах данных

И много ещё интересного.

Особенно порадовали бенчмарки в конце с неожиданными результатами — strings.Join() может работать эффективнее чем bytes.Buffer.

В общем, рекомендую к прочтению 👾

#performance #slices #strings #article
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍119