Roman
пруфы?)
пруфы чего именно?
Roman
пруфы чего именно?
того что гошный сервер может обогнать Nginx по основным параметрам аля latency, RPS..
Roman
того что гошный сервер может обогнать Nginx по основным параметрам аля latency, RPS..
по rps - точно. http-парсер в nginx не самый быстрый, например.
Roman
по rps - точно. http-парсер в nginx не самый быстрый, например.
хмм, сильно утверждение, проверять я его конечно не буду (времени особо нет) 🙂
doc
За генерализацию платишь перформансом
Roman
Nginx много больше умеет, вот и медленнее
Nginx это HTTP платформа, которая только на это и специализируется AFAIK
doc
Да, но он умеет больше, чем просто http сервер go
Roman
Да, но он умеет больше, чем просто http сервер go
умеет больше только засчёт модулей
Roman
Да, но он умеет больше, чем просто http сервер go
короче надо мерять и проверять, спорить тут - лишнее...
snip
https://github.com/valyala/fasthttp/tree/master/examples/fileserver
snip
Автор померил)
Roman
https://github.com/valyala/fasthttp/tree/master/examples/fileserver
I see, да, интересно, ну тогда пока-что беру свои слова обратно, возможно nginx не настолько крут насколько я себе представлял
doc
А как го сервер поведет себя при злонамеренно битых пакетах?
doc
Медленных соединениях?
Anonymous
А как го сервер поведет себя при злонамеренно битых пакетах?
как напишите так и будет работать это ЯП а не иснструмент
doc
Вот к этому я и веду. Nginx уже эти проблемы решает
doc
Поэтому медленнее на типовой нагрузке
Anonymous
Поэтому медленнее на типовой нагрузке
ну если вы не решаете то наверно медленнее , тот кто решает он знает что решает для чего и насколько может ускориться
Roman
Автор померил)
спасибо! а то я забыл уже где видел это )
Roman
А как го сервер поведет себя при злонамеренно битых пакетах?
пользовательское приложение ничего не знает про пакеты
Anonymous
go run *.go попробуй
там и билд не узнает
Aleksandr
так одинаково. впорос-то был уже пару раз в чате
Aleksandr
У меня компилятор не видит соседние main пакеты
Aleksandr
т.е. если main разбит на несколько go файлов то не компилируется прога
Aleksandr
нет, он не видит функции и типы в других файлах
Aleksandr
просто идите, и запускайте go run *.go
Aleksandr
go run main.go проигнорит остальные файлы в пакете main. Надо перечислить их все: go run main.go file1.go file2.go, или просто go build && ./binary
Aleksandr
Можно go run *
Aleksandr
опа, спасибо) а то достало файлы передавать хД
Aleksandr
Может, go run *.go ?
🏁Александр
шотут?
Daniel
но запускаю через консоль go run main.go
Go run компилит только явно перечисленные файлы
🏁Александр
Я уже давно устал спрашивать...
мне кажется "скорость" де факто всегда req/sec
Daniel
Средняя за N секунд, ага
Daniel
А latency?
Daniel
A deviation?
🏁Александр
latency - не учитывается обычно, localhost
🏁Александр
а что есть deviation?
Daniel
саша
тут особо нечего обсуждать. nginx - не самый быстрый сервер и обогнать его на go вполне реально. сложнее соревноваться h2o или lwan
Может быть и вполне реально, а может быть и нет. Не стоит забывать что гошная модель IO не очень хорошо работает с файловым IO в линуксе, ибо файловый IO есть только блокирующий.
Daniel
А nginx-овая? (Hint: хуже)
Daniel
Однопоточностью
саша
Однопоточностью
(Внезапно) раздатчику статики незачем иметь общую память между потоками. В рамках линукса это означает, что тебе и многопоточность вместо многопроцессорности не нужна.
Daniel
Коллега, ззачем вы мне это говорите?
Daniel
Если вы включите голову - вы сами все поймете
Daniel
А спорить с вами я все равно не буду
Anonymous
Однопоточностью
А давно nginx однопоточным стал? Или я мысль не понял ?
Daniel
А давно nginx однопоточным стал? Или я мысль не понял ?
Всегда был. Так что или префорк, или блоки на дисклвом ио
Daniel
Причем префорк плохо спасает - часть запросов все равно встает
Anonymous
Всегда был. Так что или префорк, или блоки на дисклвом ио
Вроде как там уже все переписали на пулы, не?
Anonymous
https://www.google.ru/amp/s/www.nginx.com/blog/thread-pools-boost-performance-9x/amp/
Daniel
https://www.google.ru/amp/s/www.nginx.com/blog/thread-pools-boost-performance-9x/amp/
О, спасибо! Я как раз года три назад перестал им пользоваться и следить. Это означает, что теперь io модель в nginx, возможно, не хуже, чем в go
Daniel
Стал на гошечке писать, а nginx настраивать доверил другим
Daniel
А теперь и вовсе его нет, весь траф на го терминируем
heavycharged
Как заставить Goland компилировать бинарник с нужным мне именем? Он в упор не принимает флаги -o ""
heavycharged
сорян, поправил выше, речь про IDE Goland
heavycharged
а, понял, название задания = название бинарника.
Pavel
В Makefile работает как надо все 😆
Daniel
Makefile не нужен (и вреден)
Pavel
Ой мы это уже обсуждали тут, мне удобно им пользоваться, удобно вставлять в CI. Пока более удобное не завезут — мигрировать вряд ли буду (лень).
Daniel
Заметь, статье уже 3 года.
Заметь, я заметил :)
Pavel
Но не пропагандируй, хотя бы
Я забыл его не достатки, кроме как отсутсвие make на твоём лептопе 😰 не вижу ничего плохого в нем вообще. Если сборка простая, а-ля go build, то он не нужен, если более сложная, то он отлично работает.
Daniel
Как вам ловко удается забывать главное...
Pavel
Не главное, а плохое.
Daniel
Код должен быть готов к использованию сразу после go get
Daniel
Make просто некому запускать
Pavel
Идея умеет. CI умеет.
Daniel
То есть, к мейку нужна idea? Ooook...