Maxim
хотя
Maxim
не могу придумать, почему их следует там оставлять, мб, кто-то знает?
Maxim
они там объясняют, что мапы, которые очищаются, тоже могут привести к утечкам памяти
ros
скорей всего мап внутри как какой-то слайс выглядит и его геморойно полностью реалоцировать при каждом изменении и сделали тупо append
Maxim
точно как слайс выглядит
ros
вот со слайсами то предупреждения везде что оно не может быть уменьшено без реалокации
Ivahaev
Ну фиг знает https://play.golang.org/p/9W0cTl8iDY
Ivahaev
Алокации уменьшаются
Ivahaev
Хотя, не полностью. Получается, что не переиспользуются вёдра, что ли?
Aleksandr
https://play.golang.org/p/Bhvc3NrGCS
Aleksandr
ну и старый добрый способ - затирать
ros
черт знает как это происходит, но оно растет оттестится выкачу в прод посмотрю насколько помог этот костыль с пересозданием
Илья
может быть вам вообще не нужен глобальный map?
Илья
ну, такой вот наброс/предположение
ros
он не глобальный в рутине крутится хранит активных клиентов
Илья
хм, я натыкался на что-то подобное, по профилю все аллокации в map?
ros
да, из долго живущих только эти два map
Илья
насколько я понял, проблема в пиковых объемах, а не в том, что не происходит повторного использования(оно, судя по поведению, происходит)
Илья
Т.е. https://play.golang.org/p/o7RM8Dz3Xo
Илья
вы правы, что-то натекает
Илья
на 200000 пересозданных элементов 0.6 метра, на что, мне лично, непонятно
Илья
хотя похоже на флуктуации
ros
живая нагрузка покажет неделю повисит
Daniel
минутка саморекламы: http://backendconf.ru/2017/abstracts/2785
Мерль
http://golangshow.com/episode/2016/12-28-089/
I
Всем привет, не так давно начал учить го и какие-то базовые вещи уже понял. Вопрос такой. Что можно реализовать на го для усвоения изученного материала и проверки знаний?
Oleg
О или напиши мне диплом;D
Maxim
key-value хранилище
Maxim
бэкенд для сокращателя ссылок
I
А с каналами чё нить?
Maxim
А с каналами чё нить?
все, что озвучил выше, подойдет
Aleksandr
А с каналами чё нить?
Бэкенд для сокращателя ссылок на каналах
I
Ок, спасибо
Maxim
каналы можно вообще везде, где надо и где не надо, засунуть
Мерль
Всем привет, не так давно начал учить го и какие-то базовые вещи уже понял. Вопрос такой. Что можно реализовать на го для усвоения изученного материала и проверки знаний?
Менеджер заметок Сортировщик файлов (распихивать файлы по папкам) Конвертер из одних форматов изображений в другие Менеджер задач (продвинутый cron) Программа, которая выдаёт прогноз погоды, самый популярный твит и курс валют при запуске терминала
Мерль
Простую очередь с rest api Сервер для мессенджера Бота для поиска текста в интернете без использования поисковых движков
I
Спасибо ещё раз
Slava
а в чём прикол материться в общественном месте?
Slava
я понимаю там между друзей, но вот выйти на площадь и сказать гордо слово из трёх букв. Это как проявление отваги?
Slava
@goodstemy ^
Andrey
Нет проявление невоспитанности, но это сейчас никому не интересно к сожалению. Нынешняя молодежь , да и не только вообще клали прибор на нормы поведения( это печалит, как отца двоих детей по крайней мере точно
I
Извиняюсь. Прикола нет, скорее выражение искренних эмоций посредством ругательств. Не повторится отныне
Alex
канал благородных девиц?
Alex
обсценная лексика издавна служит для выражения сильных эмоций. воротить нос от нее - ханжество
Alex
а учить кого-то или указывать ему на его воспитание - верх невоспитанности)
Мерль
Я предлагаю закрыть тему
Andrey
Может и так, но когда я с детьми в общественном месте слышу мат, от не стясняющихся товарищей, это как бы фэйл. А учить я никого не намереваюсь. Тему предлагаю закрыть, все равно каждый по этой теме останется при своём.
Alex
на кой тогда было высказывать вообще свое веское мнение? если все равно все остаются при своем
Ivan
и как бы - чего стеснятся живого русского языка? 😃
Andrey
Мы все его знаем и они в том числе, но я считаю, что в каких то местах, его употребление не уместно
Andrey
От мата, как от информации не оградить. Они ее все равно получат в той или иной форме и если не от тебя, то где-то ещё. В общем.. тему не продолжаю, а то Мерль прав, не место тут этому.. мы тут язык и темы с ним связанные обсуждаем..
Sergey
Привет, можно быстрый, но возможно интересный вопрос по языку?
Sergey
Как создать массив приватных структур во внешнем пакете? При условии, что имеется паблик метод, который умеет создавать объекты такой структуры.
Sergey
Не меняя исходный пакет, он не мой.
Sergey
Т.е. что-то вроде: var firstObj = externalPackage.GetPrivateObj() var array = append(firstObj, externalPackage.GetPrivateObj())
Sergey
Но язык требует, чтобы firstObj уже был слайсом :(
Sergey
С go почти не знаком, но пока что не могу понять, как я сделаю адаптер к типу, к которому у меня нет доступа в моем пакете.
Мерль
1. Форкнуть библиотеку, сделать нужный метод или опубликовать тип. Придётся поддерживать. 2. Сделать пуллреквест с исправлением выше 2. Через рефлексию. Легко накосячить и медленно
Sergey
Через рефлексию можно сбилдить приватный объект?
Sergey
Ах да. Мне нужен массив именно этого типа. Полная ситуация такая. Во внешнем пакете есть вариативный метод, который принимает эти объекты, нужно его вызвать. func ExternalMethod(objects ...privateObject)
Oleg
Звучит, как неудачно спроектированный api
Sergey
Согласен, но пакет не мой и даже проблема не моя. Меня просто заинтересовал этот случай :)
Sergey
Вроде нельзя. Владелец его использует примерно так: Menu("something", Option("1", "title"), Option("2", "title 2"), Option("3", "title 3"))
Sergey
Похоже рефлексия должна помочь, спасибо за инфу. Это хорошо, что есть такой инструмент.
Мерль
Через рефлексию будет адок Придётся протаскивать внутри неё начиная от конструктора и заканчивая результатом функции, принимающей слайс
Sergey
Да, догнал :(
Sergey
Слишком говнясто
Sergey
Жаль нет способа обмануть систему типов
Мерль
вот серьёзно, за такое хочется взять и форкнуть
Sergey
Ну, на самом деле здесь есть и недоработка в языке. Почему вообще можно объявить паблик метод, который принимает в себя приватные структуры. Если уж все такое статическое, что ж тут то упустили.