Я писал довольно большой CSV-файл и не хватало памяти.
У меня изначально были настройки выделения и цикла как таковые, что вызвало ошибку out of memory
.
for ; someCondition ; {
// this will be garbage collected after each iteration, right?
csv := make([][]string, 100000)
// do stuff w/csv here, like csv[0] = something
}
Я, наконец, попытался повторно использовать тот же [][]string
, как это было, и это решило проблему.
csv := make([][]string, 100000)
for ; someCondition ; {
// do stuff w/csv here...
csv[0] = something
}
Была ли каждая переменная, назначенная make()
в первом подходе, не мусором, собранным после каждой итерации цикла?