Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: memory, optimization, slice, rune

Как минимизировать аллокации при работе с рунами и слайсами?

Вопрос о снижении нагрузки на GC при работе с рунами.

Короткий ответ

Используйте предварительное выделение памяти (make([]rune, 0, capacity)) или strings.Builder.

Длинный ответ

Способы оптимизации:

  1. Предварительный аллокация слайса:

    runes := make([]rune, 0, expectedLength) // Избегаем переаллокаций
  2. strings.Builder для строк:

    var builder strings.Builder
    builder.Grow(expectedLength) // Резервируем память

Пример:

func runesToString(runes []rune) string {
    builder := strings.Builder{}
    builder.Grow(len(runes))
    for _, r := range runes {
        builder.WriteRune(r)
    }
    return builder.String()
}
  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    7

Навыки

  • Golang

    Golang

Ключевые слова

#memory

#optimization

#slice

#rune

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.