170 похожих чатов

Доброго времени суток товарищи. У меня возможно тупой вопрос но все

же
package main

import (
"bufio"
"fmt"
"github.com/pkg/profile"
"os"
)


func main() {
defer profile.Start(profile.MemProfile).Stop()
scanner := bufio.NewScanner(os.Stdin)

for scanner.Scan() {
line := scanner.Text()
go func(line string) {
fmt.Println(line)
}(line)
}
err := scanner.Err()
if err != nil {
fmt.Printf("Scanner ioerror: %v.", err)
}
}
Запускаем такой код, подаем 100000 строк на вход и получаем RSS в 490М, причем память не отдается системе.
Обьясните как так, потэнциально при долгой работе утечка ?

2 ответов

7 просмотров

ну 1 горутина примерно 4-4.5 кб, если не ошибаюсь значит 400-450мб у тебя цена горутин

1 - горутины. 2 - Помимо горутин много уходит на аллокацию новых стрингов. Поскольку они уходят в горутины, то размещаются в куче. sync.Pool для строк - значительно уменьшил потребление памяти.

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
17
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Карта сайта