Pavel
чсх у нас их так и строят
Пока обкатывают на стадионах.
YᑌᖇIY
Детские проблемы преследуют годами, хотя рабочие решения уже есть. Не говорите мне про говно-легаси, я знаю. https://tproger.ru/news/dangling-pointers-detection/
YᑌᖇIY
NLL в кубе, хром будет неделю компилироваться
Ну например, неделю компилировать и не иметь утечек, которые иногда есть, иногда нет, а иногда есть, но не у всех, и проявляются не всегда... Те потратить месяцы на поиск утечки, ещё раз неделю компилировать. Или компилировать неделю, не релизить ещё неделю, исправляя баги, компилить неделю.
саша
И с разделением на овнера и поинтер из коробки.
David
Доброго утра всем. Подскажите, пожалуйста, http2 router для go есть?
Pavel
Стандартный сервер умеет.
Мерль
Доброго утра всем. Подскажите, пожалуйста, http2 router для go есть?
с версии 1.6 стандартная библиотека поддерживает http2
Roman
А запускал кто quic на go?
Anonymous
подскажите, пожалуйста, по container/ist. Я хочу отфильтровать элементы и оставить в листе только те, которые удовлетворяют определенному условию. Но как только я удаляю какой-либо элемент, итерация обрывается. func main() { queue := list.New() for i := 0; i < 4; i++ { queue.PushBack(i) } for element := queue.Front(); element != nil; element = element.Next() { log.Println(element) log.Println(element.Value) queue.Remove(element) log.Println(element) } } 2018/09/28 13:52:18 &{0xc0000721b0 0xc000072150 0xc000072150 0} 2018/09/28 13:52:18 0 2018/09/28 13:52:18 &{<nil> <nil> <nil> 0} что нужно изменить?
Daniel
За что? За плохой совет?
Vadim
вот я ждал)
Vadim
плохой совет рожден из твоего плохого ответа)
🏁Александр
что бы цикл не останавливался
Anonymous
За что? За плохой совет?
в первую очередь за желание помочь:)
Daniel
плохой совет рожден из твоего плохого ответа)
Я советовал создавать новый слайс
🏁Александр
Я советовал создавать новый слайс
памяти же выжрет в два раза больше
🏁Александр
ну конечно не в два, но выжрет 🙂
Daniel
И что? А так проца выжрет раз в 10
Vadim
Решение Александра лучше
Daniel
Не лучше
🏁Александр
у меня уже параноя по поводу "экономии", знаю что на собеседованиях за новые слайсы валят нещадно
🏁Александр
типо "думайте как с одним"
Olzhas
память дешевле чем проц
Olzhas
есть сборщик мусора
Anonymous
А почему будет такая разница в потреблении проца?
🏁Александр
легко добавить кубик на вершину башни, сложно вытащить из середины 🙂
YᑌᖇIY
// Clear all elements by iterating var next *Element for e := l.Front(); e != nil; e = next { next = e.Next() l.Remove(e) }
классика жанра, точно также рекомендуется делать в других ЯП. Удаление элемента "на итераторе" безопаснее. Любое "прямое вмешательство" в Лист снаружи других способом - валит выполенение. Используйте этот способ, он должен быть безопасен.
YᑌᖇIY
@onokonem говорил как раз за создание нового списка рядом
Не уверен, что он прав, но в java это делается именно так, как вы привели (ну с учетом ЯП)
🏁Александр
да что мы паримся
🏁Александр
можем же забенчить
🏁Александр
запустите у себя
🏁Александр
https://play.golang.org/p/ut8Id3jjQ-O
🏁Александр
у меня что-то одинаковый результат показывает O_o
Anonymous
BenchmarkRemote0-4 2000000000 0.00 ns/op BenchmarkNewList-4 2000000000 0.00 ns/op
L
хотя бы так сделайте: for n := 0; n <= b.N; n++ {
Anonymous
BenchmarkRemote0-4 5000000 499 ns/op BenchmarkNewList-4 3000000 453 ns/op
L
BenchmarkRemote0-4 100000000 11.3 ns/op BenchmarkNewList-4 300000000 8.82 ns/op
Daniel
ну и в изначальной задаче был, все же , не list.List, а честный слайс
🏁Александр
L
да там опечатко
ну и тогда уж b.StopTimer() перед заполнением листа и b.StartTimer() после
L
мы же не пуш в лист тестируем
🏁Александр
https://play.golang.org/p/LWsI74lkrS-
🏁Александр
вроде оки
🏁Александр
но результаты странные
🏁Александр
BenchmarkRemote0-4 100000000 25.5 ns/op BenchmarkNewList-4 500000 3728 ns/op
🏁Александр
@onokonem может я конечно коряво тест написал, но ваш вариант в сухую проигрывает
freezlite
есть прометеус и его билд для го. Как из него достать cpu percent usage ?
freezlite
есть process_cpu_seconds_total
freezlite
не буду скрывать я новичек в прометеусе и графане
freezlite
забыл сказать для запросов используется графана
L
но результаты странные
тест кривой. https://play.golang.org/p/Ls1epR7ahmj
Daniel
node_exported репортит все, что надо от cpu, насколько я помню
L
BenchmarkRemote0-4 500000 3935 ns/op BenchmarkNewList-4 500000 3360 ns/op
🏁Александр
почему кстати количество итераций равное O_o
🏁Александр
что за баг
freezlite
@onokonem node_exporter сторонний софт, зачем его ставить если го биндинг пишет эти метрики
freezlite
я просто не понимаю как cpu usage in seconds перевести в percent usage
freezlite
стырил такое irate(process_cpu_seconds_total{host="some"}[5m]) * 100
freezlite
но не знаю насколько оно правильно
freezlite
что такое instance ?
L
что за баг
нет бага
freezlite
коллега, какой биндинг какие метрики пишет?
https://github.com/prometheus/client_golang/blob/master/prometheus/process_collector.go#L76
freezlite
в го mode="idle" нет я так понял
Daniel
ну вот и подумайте - как сборщик метрик из процесса отрепортит вам системную метрику?
Daniel
BenchmarkRemote0-4 500000 3935 ns/op BenchmarkNewList-4 500000 3360 ns/op
https://play.golang.org/p/NcNtX-pVtAj BenchmarkRemote0-8 300000 4382 ns/op BenchmarkNewList-8 300000 4180 ns/op BenchmarkNewSlice-8 1000000 2162 ns/op
Daniel
"как вдвое увеличить нагрузку на процессор за просто так"