Загрузка…
Загрузка…
Go · junior · сложность 4
Конкатенация строк в циклах. Как упоминалось ранее, использование + для повторяющейся конкатенации строк в циклах создает множество промежуточных строк. Избегайте этого, используя strings.Builder.
Добавление к фрагментам в циклах без предварительного выделения: Если вы знаете приблизительный окончательный размер фрагмента, предварительно выделите его с помощью make([]T, 0, capacity), чтобы избежать многократного перераспределения при добавлении.
Создание множества маленьких объектов. Повторное создание кратковременных экземпляров небольших структур или объектов. Рассмотрите возможность объединения этих объектов в пул с помощью sync.Pool, если затраты на создание/сборку мусора значительны.
Ненужное копирование. Передача больших структур или массивов по значению в функции или методы, когда достаточно указателя или фрагмента.
Неэффективные структуры данных. Использование структур данных, которые требуют частого перераспределения или требуют больших затрат памяти для вашего конкретного случая использования.
Неправильное закрытие переменных цикла в горутинах: Классическая ошибка, которая не приводит к чрезмерному выделению памяти, но может привести к совместному использованию и неправильному изменению одной переменной в горутинах, что требует осторожного обращения или передачи переменной в качестве аргумента горутине.
+ для повторяющейся конкатенации строк в циклах создает множество промежуточных строк.