@gogolang

Страница 1472 из 1630
David
28.09.2018
07:37:53
Доброго утра всем. Подскажите, пожалуйста, http2 router для go есть?

Pavel
28.09.2018
07:41:49
Стандартный сервер умеет.

Мерлин
28.09.2018
07:42:52
Доброго утра всем. Подскажите, пожалуйста, http2 router для go есть?
с версии 1.6 стандартная библиотека поддерживает http2

Roman
28.09.2018
07:42:56
А запускал кто quic на go?

Google
Айнур
28.09.2018
08:54:39
подскажите, пожалуйста, по 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
28.09.2018
09:12:10
За что? За плохой совет?

Vadim
28.09.2018
09:18:17
вот я ждал)

плохой совет рожден из твоего плохого ответа)

Айнур
28.09.2018
09:20:27
За что? За плохой совет?
в первую очередь за желание помочь:)

Daniel
28.09.2018
09:25:55
плохой совет рожден из твоего плохого ответа)
Я советовал создавать новый слайс

Google
Александр
28.09.2018
09:26:55
Я советовал создавать новый слайс
памяти же выжрет в два раза больше

ну конечно не в два, но выжрет ?

Daniel
28.09.2018
09:27:34
И что? А так проца выжрет раз в 10

Vadim
28.09.2018
09:28:16
Решение Александра лучше

Daniel
28.09.2018
09:28:28
Не лучше

Александр
28.09.2018
09:28:30
у меня уже параноя по поводу "экономии", знаю что на собеседованиях за новые слайсы валят нещадно

типо "думайте как с одним"

Olzhas
28.09.2018
09:28:53
память дешевле чем проц

есть сборщик мусора

Айнур
28.09.2018
09:33:12
А почему будет такая разница в потреблении проца?

Александр
28.09.2018
09:34:45
легко добавить кубик на вершину башни, сложно вытащить из середины ?

Yo
28.09.2018
09:40:51
// Clear all elements by iterating var next *Element for e := l.Front(); e != nil; e = next { next = e.Next() l.Remove(e) }
классика жанра, точно также рекомендуется делать в других ЯП. Удаление элемента "на итераторе" безопаснее. Любое "прямое вмешательство" в Лист снаружи других способом - валит выполенение. Используйте этот способ, он должен быть безопасен.

Yo
28.09.2018
09:43:14
@onokonem говорил как раз за создание нового списка рядом
Не уверен, что он прав, но в java это делается именно так, как вы привели (ну с учетом ЯП)

Александр
28.09.2018
09:44:48
да что мы паримся

можем же забенчить

запустите у себя

https://play.golang.org/p/ut8Id3jjQ-O

у меня что-то одинаковый результат показывает O_o

Google
Айнур
28.09.2018
10:24:01
BenchmarkRemote0-4 2000000000 0.00 ns/op BenchmarkNewList-4 2000000000 0.00 ns/op

Lesha
28.09.2018
10:24:25
хотя бы так сделайте: for n := 0; n <= b.N; n++ {

Айнур
28.09.2018
10:25:28
BenchmarkRemote0-4 5000000 499 ns/op BenchmarkNewList-4 3000000 453 ns/op

Lesha
28.09.2018
10:26:08
BenchmarkRemote0-4 100000000 11.3 ns/op BenchmarkNewList-4 300000000 8.82 ns/op

Daniel
28.09.2018
10:27:07
ну и в изначальной задаче был, все же , не list.List, а честный слайс

Александр
28.09.2018
10:29:24
Lesha
28.09.2018
10:29:56
да там опечатко
ну и тогда уж b.StopTimer() перед заполнением листа и b.StartTimer() после

мы же не пуш в лист тестируем

Александр
28.09.2018
10:33:43
https://play.golang.org/p/LWsI74lkrS-

вроде оки

но результаты странные

BenchmarkRemote0-4 100000000 25.5 ns/op BenchmarkNewList-4 500000 3728 ns/op

Александр
28.09.2018
10:36:19
@onokonem может я конечно коряво тест написал, но ваш вариант в сухую проигрывает

Denys
28.09.2018
10:39:28
есть прометеус и его билд для го. Как из него достать cpu percent usage ?

есть process_cpu_seconds_total

не буду скрывать я новичек в прометеусе и графане

забыл сказать для запросов используется графана

Lesha
28.09.2018
10:40:13
но результаты странные
тест кривой. https://play.golang.org/p/Ls1epR7ahmj

Daniel
28.09.2018
10:40:42
node_exported репортит все, что надо от cpu, насколько я помню

Lesha
28.09.2018
10:40:49
BenchmarkRemote0-4 500000 3935 ns/op BenchmarkNewList-4 500000 3360 ns/op

Google
Александр
28.09.2018
10:41:05
почему кстати количество итераций равное O_o

что за баг

Denys
28.09.2018
10:42:49
@onokonem node_exporter сторонний софт, зачем его ставить если го биндинг пишет эти метрики

Admin
ERROR: S client not available

Denys
28.09.2018
10:43:12
я просто не понимаю как cpu usage in seconds перевести в percent usage

стырил такое irate(process_cpu_seconds_total{host="some"}[5m]) * 100

но не знаю насколько оно правильно

что такое instance ?

Lesha
28.09.2018
10:44:41
что за баг
нет бага

Daniel
28.09.2018
10:44:42
Denys
28.09.2018
10:45:14
коллега, какой биндинг какие метрики пишет?
https://github.com/prometheus/client_golang/blob/master/prometheus/process_collector.go#L76

в го mode="idle" нет я так понял

Daniel
28.09.2018
10:49:41
ну вот и подумайте - как сборщик метрик из процесса отрепортит вам системную метрику?

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

"как вдвое увеличить нагрузку на процессор за просто так"

Lesha
28.09.2018
10:55:51
Или Лёха, не знаю, кто бенч писал
я не писал, я поправил

Daniel
28.09.2018
10:56:06
BenchmarkNewSlice написал я

Google
Daniel
28.09.2018
10:57:13
но он такой же, как BenchmarkNewList

Roman
28.09.2018
10:58:19
Блин... Я это все прочитал. Целый день некогда было залезть в чат, а тут 500> сообщений. Роман совершенно прав, dangling pointers, pointer aliasing — это беда языка, если её не решить хоть каким способом. Скала, раст решили эту детскую проблему. Проблема очевидна только тем, кто её понимает. Начать понимать её можно только на больших командах (точнее разными командами на одном проекте), с очень разношерстной публикой от новичков до опытных. На проекте, где как обычно некогда разбираться, что делает чужой код/либа, но вдруг!! оказывается что она меняет твои данные (состояние), которые ты не ожидал для изменения! И не ты их сам сознательно поменял, а произошёл "side effect" и цепочка выполнения, которая к этому привела, оказалась "очень вычурной и витеиватой". Кто с этим сам не сталкивался, писал только "домашние" проекты, тот к сожалению мало понимает суть проблемы, увы.... Эта проблема отсутствует в скала, потому что заложена в языке, тк сделать мутацию как сайд-эффект можно только сознательно и тогда коллеги это внимательно изучат, насколько это оправдано. Раст решил это на уровне компилятора. Это же решение ОЧЕНЬ НЕОБХОДИМО в компиляторе Go. Но есть сомнения, как вообще создатели го относятся к этой идее? Какие были или нет контакты, комменты от них, Роман? Может имеет смысл бомбить их на почту, в гугл группе, в слак каналах? Какие кто знает "наиболее прямые точки доступа" к создателям языка и компилятора? Поставить star + watch в гитхабе — это почти ни о чем... Нужно больше усилий и я понимаю Романа и его постоянные попытки форсить и рекламировать свой proposal на канале. Но нужны другие, более "прямые и точные каналы", чтобы обращаться к "главным го разработчикам". Роман, думаю ещё стоило бы сделать более наглядные (то ли простые, то ли наоборот quiz, не очевидные примеры) с примером такого поведения, которое disaster. Да, иногда вы можете увидеть и дать кому то" по рукам" в своей команде, но лучше, чтобы за вас это делал компилятор!
документ уже почти готов к публикации. На днях буду его публиковать в issue tracker'е, hackernews и mail

Kirill
28.09.2018
11:00:14
Ты это
Зачем вы копируете int?

Там же постоянное копирование

Roman
28.09.2018
11:01:28
Не факт, что скорость работы программера будет выше на расте/скале чем на го, если взять рандомного прогера и потратить одинаковое время на изучение языка
ты так пишешь будто иммутабельные типы усложняют язык настолько что он начинает обрастать ржавчиной (превращается в Rust) ?

Алексей
28.09.2018
11:04:35
ты так пишешь будто иммутабельные типы усложняют язык настолько что он начинает обрастать ржавчиной (превращается в Rust) ?
Сначала иммутабельностью балуются, а потом на всякие дженерики переходят, а затем опускаются на самое дно и начинают писать на хаскеле.

Roman
28.09.2018
11:05:00
Под "скоростью" я подразумевал немного другое, извините, не совсем точно выразился. Речь не про скорость кодинга или проектирования. Цена ошибки и цена её исправления, которая займёт время и нервы (а произойдёт она как правило на продакшн, и как бывает после свежего деплоя). Цену этого сложно вычислить "легко и точно". Но лучше и правильнее это сделать в языке и компилятором, даже за счёт "сложных проверок" или "увеличения времени компиляции", чем потраченными человеко-часами. Кто этого не понимает, увы, его убедить, что это важно сложно. Это только с опытом приходит, что лучше этого гемороя НЕ иметь и столкнуться "иногда", чем иметь заложеннвй в языке, для "супер скоростной компиляции".
иммутпбельные типы не будут представлять собой значительной нагрузки на компилятор, разница не будет заметна при хорошей оптимизации

Kirill
28.09.2018
11:11:42
Супееер

Алексей
28.09.2018
11:12:22
а разве в rust непродуманная система immutability?
В хаскеле вообще mutability нету (точнее есть, но оно в монады там спрятано).

То есть хаскель - это вообще иммутабельность, функциональщина, типизация возведённые в абсолют.

eugene
28.09.2018
11:14:25
В хаскеле вообще mutability нету (точнее есть, но оно в монады там спрятано).
в haskell можно нормально в OOP стиле писать большие программы?

Страница 1472 из 1630