что-то вроде этого. Пока программа работет, вижу что занятая оперативная память растет. Но я стараюсь чистить все переменные, мапы, слайсы и т.д. Не могу найти где утекает память. Есть какие-то понятные способы понять где утечка?
Pprof
Спасибо, изучу
Чистить? О_о
а что за программа?
https://golang.org/doc/diagnostics.html
А это клиент rest api. Посылаю запросы, получаю ответы.
все io.Reader закрываете?)
да, пихаю в них nil, "", 0 когда больше не юзабельны.
Ну создаю ch := make(chan []byte) запускаю go myfunc(ch, &wg), где wg это sync.WaitGroup{}. и в myfunc в конце делаю wg.Done(). В этом случае же все ioutil.ReadAll сами закрываются? Не?
https://golang.org/pkg/io/ioutil/#ReadAll на вход io.Reader type Reader interface { Read(p []byte) (n int, err error) }
и вот тут лучше поближе изучить как GC устроен)
Не удивляйтесь. Просто придумал очередной гугл. Сижу пишу. Взял первое что попалось под руку и это Go. Разбираюсь после того как на мины наступаю. Но спасибо совет, поразбираюсь на досуге почему так нельзя.
можно, только эффект не совсем тот что ожидаете, сборщик мусора автоматический
А гарбадж коллектор вам тогда зачем? Пишите на сях.
Да понял уже))) Мне надо быстро, коряво, со смузи и куртизанками, поэтому мой выбор и го. Тут много уже за меня подумали и пострались уберечь от ошибок. А на сях мой сервер сразу и ляжет если я даже хелло ворлд на него загружу мною написанный.
Как-то странно вы к этому пришли) обычно быстро, коряво и со смузи это про python/js
Я просто учел ещё мне нужно будет быстро пилить микросервисы-клиенты rest api, а быстрее чем на го я даже не представляю как их сделать. Под мои задачи rest api сервера и клиентов к нему по-моему идеальный выбор. При том что язык достаточно прост.
Посмотрел. Топчик! Благодраю. Очень пригодится.
Обсуждают сегодня