@proelixir

Страница 470 из 1045
Alexey
28.03.2017
21:52:33
по го, вроде бы я быстрее смог скопировать код. но запарился сам Го настраивать. какие-то там пути. хотя на орандже гошка так поставился. и собрал апп без настроек

Александр
28.03.2017
21:53:09
И вообще на самом деле уже всем похуй че там быстро го или элексир
я согласен, только я считаю что важнее скорости работы программ, скорость разработки и изменения кода

Alexey
28.03.2017
21:53:16
в эликсир же, я думаю, так просто не заедешь. надо mix ом сначала апп создать. потом к нему прикрутить ковбой и плаг. ну и так далее

Александр
28.03.2017
21:53:18
ну и вообще скорость решения задачи

Google
Alexey
28.03.2017
21:53:37
так что тут можно сказать, что Го победил. и по скорости моей на нем разработки

Alexey
28.03.2017
21:53:44
и по понятности кода и того, как он работает

Александр
28.03.2017
21:53:49
на нём быстро едешь

Alexey
28.03.2017
21:54:04
в эликсир же в эти плаги сразу можно и не заехать

Александр
28.03.2017
21:54:19
так что тут можно сказать, что Го победил. и по скорости моей на нем разработки
ты попробуй добавить несколько сущностей и щепотку логики

Alexey
28.03.2017
21:54:42
там же феникс
где феникс?

Александр
28.03.2017
21:54:50
ну для быстрой разработки

Alexey
28.03.2017
21:55:49
не. феникс - понятно. ты просто посмотри на код на го. вот роутер чем - то похож. логикой и размерами

феникс там было бы вообще - феникс про фому, а Го - про ерёму

Александр
28.03.2017
21:56:35
попробуй поставить gccgo и вот так скомиплить go build -compiler gccgo -gccgoflags "-march=native -O3" app.go

Alexey
28.03.2017
21:57:12
ок. записал, попробую

Александр
28.03.2017
21:57:19
роутер - это не просто get и '/' указать, это динамические части, скоупы и.т.п.

Google
Александр
28.03.2017
21:57:26
в реальном приложении

простейшие пути я очень редко использовал, даже для карманных проектов

Alexey
28.03.2017
21:58:10
еще у меня есть где-то свой велосипед по парсу входящих http. вот можно будет померять, разницу в active true/false режимах приема данных. и обработке входящих разным количеством акцепторов

Александр
28.03.2017
21:58:39
бенчмарки - зло, показывают абстрактных попугаев, которые часто с реальными задачами не связаны

Alexey
28.03.2017
21:58:58
ну то есть, можно было вообще на голых бинари это все промерять. тут не будет просадок на том, что не видно под капотом ковбоя и роутера

кстати, да. ab, wrk и jmeter показывают в деталях очень разное

а вот еще вопрос. как понимать этот вот график



в AB тоже есть такое же. только в текстовом виде.

бенчмарки - зло, показывают абстрактных попугаев, которые часто с реальными задачами не связаны
это да. но все началось с того, что феникс оказался в RPS на порядок ниже Go. и потом я сделал себе вывод, что это было в большей части из за того, что запускалось на виртуалке. теперь я боюсь подобных же эффектов, при использовании каких-нибудь дешевых VPS.

Александр
28.03.2017
22:04:09
го строго типизированный язык, он по определению быстрее языков в нестрогой типизацией

за магию надо платить

у тебя точно задачи где нужны простейшие веб-серверы которые потянут миллионы соединений?

когда я в последний раз обсуждал на хабре подобный вопрос, так оказалось что чуваку и рубей было достаточно по скорости =)

но он перешёл на голанг - "потому что захотелось"

если "захотелось", то бенчмарки не нужны =)

Alexey
28.03.2017
22:06:18
я хотел понять, почему такой результат ) за ерланг было обидно

ну и от части даже что-то для себя по-своему понял, когда провел тест в других условиях

Александр
28.03.2017
22:07:17
совсем не обидно хочешь магии в коде - будь готов что он будет медленнее исполнятся, хочешь скорости - сиди и типы данных контролируй вручную

в эрланге декларативный код, который наглядный, легко тестировать и изменять

Google
Александр
28.03.2017
22:07:59
в голанге императивная лапша

но зато всё шустрое =)

всё честно

Alexey
28.03.2017
22:08:20
дык получилось то так, что ерланг оказался быстрее го

и по wrk и по ab

Александр
28.03.2017
22:08:35
в рубях много магии, он вообще на порядки медленее их всех

Alexey
28.03.2017
22:08:47
либо я их не так запустил. не с теми параметрами. как понять?

Александр
28.03.2017
22:09:11
он не должен оказаться быстрее го

во первых поставь либу что я выше кинул

Alexey
28.03.2017
22:09:29
всё честно
кстати да. там можно даже честно запустить приложение в один thread.

Александр
28.03.2017
22:09:37
она реально в 10 раз быстрее чем net/http

во вторых скомпилируй gccgo

Александр
28.03.2017
22:10:03
у меня на нём выше результаты всегда получались

там реально оптимизаций больше чем в родном компиляторе

Alexey
28.03.2017
22:10:23
ок. записал. но явно не сегодня ) тема то интересная

он не должен оказаться быстрее го
вот и я так считаю. но получилось то, что получилось. jmeter в целом создал впечатление, что результат одинаковый

а ab и wrk показали небольшое отклонение в пользу ерланга

но по htop было видно, что и ядра они загружают по-разному. это тоже, считаю, надо учитывать

ерланг скушал 4 ядра. а если бы их было одно? либо машину натравить на одно?

Александр
28.03.2017
22:22:49
у меня go использует все ядра из коробки

Google
Alexey
28.03.2017
22:23:40
ну может fasthttp тоже использует

Александр
28.03.2017
22:24:44
нет

на твоём примере

Alexey
28.03.2017
22:25:20
а. понял. интересно, почему так

у меня он ядра поочередно менял. раз в 10 секунд примерно

ты как запускаешь го приложение?

так же, как и я, бинарник?

Александр
28.03.2017
22:26:24
go run 1.go

Alexey
28.03.2017
22:26:47
а я делал build и запускал

Admin
ERROR: S client not available

Александр
28.03.2017
22:27:28
с билдом тоже всё хорошо

попробуй может GOMAXPROCS переменной окружения порулить

может у тебя go старый?

меньше 1.5?

он там на одном ядре по умолчанию работал

shadowjack
28.03.2017
22:43:24
го строго типизированный язык, он по определению быстрее языков в нестрогой типизацией
не строго а статически. Эликсир например строго типизированный, но с динамической типизацией.

Я походу открыл новую синтаксическую плюшку эликсира.

for x <- 1..10, (x2 = x*x; x2 < 30), do: x2

так можно биндить переменную в фильтре for-а.

Alexey
28.03.2017
23:31:18
он там на одном ядре по умолчанию работал
похоже на то sea@OrangePI:~$ go version go version go1.2.1 linux/arm

Google
shadowjack
28.03.2017
23:32:15
Можно и по простому, for x <- 1..10, x2 = x*x, x2 < 30, do: x2 но если переменная которую биндишь будет равна false то он этот результат выкинет.

Alexander
28.03.2017
23:34:33
почитал я тут выше в чатике попытки сравнения эликсира и го

shadowjack
28.03.2017
23:34:35
iex(24)> for x <- [true, true, false], (y = not x; is_boolean(x)), do: y [false, false, true] iex(25)> for x <- [true, true, false], y = not x, is_boolean(x), do: y [true]

Alexey
28.03.2017
23:36:16
и решил все удалить, как политическую пропоганду? )

Alexander
28.03.2017
23:36:23
мои сайд проджекты пережили переход по всему колесу технологий. Ruby,Го, nodejs и теперь вот эликсир. Даже на кристале что-то пытался, но там адовейший пиздец, даже их канонический пример умирает по памяти если его ab тестировать.

вообщем после всех переходов могу сказать, что api на elixir/nodejs - самый верный вариант. Все другое - ад и шлак. Что в поддержке, что в написании.

го перкрасно себя показал, в ваакуме

равно, как и толстожопый Маккорд распинался что мол феникс быстрый - вранье. Дай боже 30мс выжмете в проде, даже без базы

но главный козырь Эликсира, почему я не съебал из этого чатика в ужасе. - какая-то сатанинская консистентность сервиса

проще говоря, написанный апи на элисире на 2-3х нодах одинаково прекрасен с 1 до миллионов запросов.

где nodejs на кластеризировать в сотни процессов, где руби просто умер еще полчаса назад, а го захлебнулся начиная отдавать респонсы в х100 медленнее, а некоторые тупо не обслуживая

эликсир выруливает

спасибо эрлангу под капотом

Alexey
28.03.2017
23:43:00
да. тупо работает. но я вот ерл и его вм воспринимаю вообще, как ОС

как полноценная самодостаточная ось. которая концептуально просто уже очень зрелая. а это только благодаря годам и опыту в телефонии, видимо

Alexander
28.03.2017
23:43:53
все кулстори что пилятся мол мы заменили нашу баржу с серверами двумя Рассберри пай и обслуживаем 100кк запросов - правда

Alexey
28.03.2017
23:44:23
даже вот банально тему Time Warp копнул. и там так все проработали. и разрывы времени, и как с этим жить... и так оно во всем

ну вот у меня Orange PI. и я вот не знаю даже сколько она переживет

Alexander
28.03.2017
23:45:22
эликсир дает возможность свежую кровь в эрланг пустить

Alexey
28.03.2017
23:45:47
мне трудно сказать, много ли это - 18к RPS

другое дело, что она помрет, если в ней банально выполнить 1..10000000 в лист

в память уперлась (там всего 512 мБ) - вм упала. подключил свап. ушла в свап. ну хоть не упала )

Страница 470 из 1045