Maxim
Просто создавай проект внутри gopath и все
Вышел же го 1.11 можно уже в gopath не класть проекты)
Anonymous
Я и так не кладу))) но ../, ./ и ../../ заебует
V
никаких относительных путей в зависимостях
Anonymous
Ну при импорте
Anonymous
Говорю же хрень
Maxim
Ну при импорте
go mod init и никаких относительных импортов нет)
Anonymous
А что оно делает?
Maxim
А что оно делает?
Почитай про go modules, в интернетах есть инфа. По факту это vgo, если знаком с ним
V
погуглите go modules 1.11
qurabay
Да 1.1
qurabay
11*
qurabay
Читайте про 1.11 hbar
qurabay
Habr
Oleksii
В телеграмме можно исправлять сообщения
Kirill
жаль, что нельзя их ещё и сжигать
Мерль
Можно, но мне нравится gopath
Очень специфичные вкусы
Andrey
Парни, привет. Вопрос о поиске утечек памяти (прям не знаю как правильно искать) - но пока во ттакой пример: Type: inuse_space Time: Aug 27, 2018 at 8:38am (UTC) Entering interactive mode (type "help" for commands, "o" for options) (pprof) top Showing nodes accounting for 6.68MB, 100% of 6.68MB total Showing top 10 nodes out of 11 flat flat% sum% cum cum% 5.18MB 77.54% 77.54% 5.18MB 77.54% bytes.makeSlice 1.50MB 22.46% 100% 1.50MB 22.46% runtime.malg 0 0% 100% 5.18MB 77.54% bytes.(*Buffer).Write 0 0% 100% 5.18MB 77.54% bytes.(*Buffer).grow Правильно я понимаю, что у меня где-то идет созданеие слайсов байт и это дело как-то не прибирается?
Andrey
Был бы кстати оч благодарен, за наводку, где почитать, как толково утечки памяти искать. Понятное дело, сам гуглю то да сё. Но без опыта профилирования гошки - прям не просто, надо более развернутые статьи видимо искать
Anonymous
нормальный движ
Anonymous
https://gist.github.com/potterua/e0c65cdf6fc8f2cd3a6d213c5649164a через длительное время процесс дропаеться с такой ошибкой ( строки которые там указаны notify := w.(http.CloseNotifier).CloseNotify() go func() { <-notify resp.Body.Close() }()
Anonymous
Забавный язык))
Илья
Был бы кстати оч благодарен, за наводку, где почитать, как толково утечки памяти искать. Понятное дело, сам гуглю то да сё. Но без опыта профилирования гошки - прям не просто, надо более развернутые статьи видимо искать
в го память не течет сама по себе, только если вы в какуб-то глобальную переменную пишете, утекают, чаще всего, горутины и дебажить это сложно, по крайней мере я не в курсе может ли какой-то инструмент помочь
Илья
Был бы кстати оч благодарен, за наводку, где почитать, как толково утечки памяти искать. Понятное дело, сам гуглю то да сё. Но без опыта профилирования гошки - прям не просто, надо более развернутые статьи видимо искать
наверное, лучший совет One thing you can do is to compare 2 heap pprofs. You can do it like this: Extract a heap profile heap0.pprof Add some load to the application Extract another heap profile heap1.pprof Compare them with go tool pprof -base heap0.pprof <bin> heap1.pprof This way you can see exactly what is increasing over time.
Andrey
что я выше писал, это как раз и есть сравнение двух профилей
Илья
что я выше писал, это как раз и есть сравнение двух профилей
эмм, и у вас "утекло" 6 мегабайт? я тут не вижу утечки
Илья
что я выше писал, это как раз и есть сравнение двух профилей
вот статейка, про посерьезнее, но в вашем случае непонятно, есть ли утечка, может утечка не в том месте и тд
Илья
https://medium.com/dm03514-tech-blog/sre-debugging-simple-memory-leaks-in-go-e0a9e6d63d4d
Andrey
что-то утекает точно, перезапускаю контейнеры - память высвобождается. но как найти - что именно, не могу никак пока подступиться(
Andrey
посмотрю, спасибо
Илья
Подскажите пожалуйста 😚😚
по стектейсу не видно ошибки, только дамп горутин
Aleksandr
Подскажите пожалуйста 😚😚
непонятно. долгие http-соединения? что там происходит вообще?
Anonymous
Да
Anonymous
Долгие хттп
Anonymous
Типа там прокси для mpegts
Anonymous
Блин
Anonymous
Просто процесс висел в скрине
Anonymous
И там лимит на количество строк
Anonymous
Очень много таких дампов с горутин, но до самой ошибки я не смог долистать
Anonymous
Ещё раз запишу лог тогда походу...
Anonymous
Оно просто падает раз в дней 5
Anonymous
Если не реже
Aleksandr
ну может не закрываются соединения долго? может их надо закрывать и новые открывать? так, пальцем в небо
Anonymous
Ну вот я так их закрываю notify := w.(http.CloseNotifier).CloseNotify() go func() { <-notify resp.Body.Close() }()
Anonymous
А прокси это просто ио Копи
Aleksandr
Ну вот я так их закрываю notify := w.(http.CloseNotifier).CloseNotify() go func() { <-notify resp.Body.Close() }()
ну я понимаю. закрываются они через 5 суток, или раз в n минут?
Anonymous
Да
Anonymous
Либо закрыто клиентом, либо тем откуда идёт поток
Pawel
Очень специфичные вкусы
Меня тоже устраивает. Что не так с GOPATH и почему нужно от него избавляться? Про это можно где-то почитать?
Alexander
Меня тоже устраивает. Что не так с GOPATH и почему нужно от него избавляться? Про это можно где-то почитать?
Нет необходимости от него избавляться - ведь работало все как-то все эти годы, но дело в том что в принципе GOPATH был необходим из-за особенностей того как Go резолвил зависимости, у многих разработчиков свой подход к тому как хранить код проектов у себя на машине и GOPATH в этом плане был не очень удобен. Сейчас с появлением go.mod появилась возможность отвязаться от GOPATH
Anonymous
и ещё такой вопросик, это в vscode подсказки нормально работают?
Anonymous
типа оно сует методы которых нет
Aleksandr
Чего из этого нет?
Anonymous
ну типа тот же append
Anonymous
это же не метод
Anonymous
а функция
Anonymous
почему он появился после точки (
Aleksandr
Почему ее нет?
Anonymous
ну функция есть
Aleksandr
Юзай goland
Anonymous
а метода для fmt такого нет
Aleksandr
@madgopher
Anonymous
Юзай goland
та он слишком громандный же
Anonymous
не?
Alexander
та он слишком громандный же
у кого-то просто комп слабый
Aleksandr
та он слишком громандный же
Загораживает что то?
Anonymous
та не
Anonymous
оно то работает норм
Anonymous
ну лан
Anonymous
ща попробую..