GOLANG_DIGEST Telegram 198
Готовим слайсы в 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



tgoop.com/golang_digest/198
Create:
Last Update:

Готовим слайсы в 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

BY Golang Дайджест




Share with your friend now:
tgoop.com/golang_digest/198

View MORE
Open in Telegram


Telegram News

Date: |

Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. fire bomb molotov November 18 Dylan Hollingsworth yau ma tei As the broader market downturn continues, yelling online has become the crypto trader’s latest coping mechanism after the rise of Goblintown Ethereum NFTs at the end of May and beginning of June, where holders made incoherent groaning sounds and role-played as urine-loving goblin creatures in late-night Twitter Spaces. Invite up to 200 users from your contacts to join your channel How to create a business channel on Telegram? (Tutorial)
from us


Telegram Golang Дайджест
FROM American