@proelixir

Страница 737 из 1045
Dmitry
27.09.2017
07:11:46
Ну в смысле я пользователь собственной либы

И нифига не понимаю как это сделать

Dmitry
27.09.2017
07:12:57
Это open source? Могу помочь

Google
Dmitry
27.09.2017
07:14:32
Либа oss

А проект - нет

Я почему то думал что можно сделать такой функционал просто и без проблем

Причём в самой либе

Alex
27.09.2017
07:22:49
неужели нет стандартного способа запускать какой-нить процесс как singleton

Dmitry
27.09.2017
07:23:31
Alex Как синглтон в кластере, такого чтобы прямо из супервизора работал без изменений нет.

@Virviil Могу сделать пример распределения для BucklerBot ?

Dmitry
27.09.2017
07:24:20
Тут главное понять идею

Alex
27.09.2017
07:24:35
https://stackoverflow.com/questions/4459431/erlang-best-way-for-a-singleton-gen-server-in-erlang-cluster

Dmitry
27.09.2017
07:24:42
Можешь кстати форкнуть

Alex
27.09.2017
07:24:44
http://erlang.org/doc/design_principles/distributed_applications.html

https://github.com/arjan/singleton

Google
Dmitry
27.09.2017
07:27:08
Alex А библиотеки есть ?

Dmitry
27.09.2017
07:27:22
Хм...

Выглядит прикольно

Dmitry
27.09.2017
07:27:33
Alex Последняя singleton - делает как раз то, что я предлагал с воркером.

И мониторит.

Dmitry
27.09.2017
07:27:45
Может быть её и взять

Как раз Глобал и глобал

Dmitry
27.09.2017
07:33:31
Только я не понял - где тогда запускать этот воркер ?

В ините аппа?

Вот тут

Или в https://github.com/BucklerBot/buckler/blob/master/apps/buckler_bot/lib/buckler_bot/application.ex

Или в application.start

Перед супервизором

Alex
27.09.2017
07:35:25
похоже на то

Dmitry
27.09.2017
07:35:34
https://github.com/BucklerBot/buckler/blob/master/apps/buckler_bot/lib/buckler_bot/application.ex#L6

Либо после супервизора, если ему нужен repo и чтобы оно до этого процесса стартовалось: with {:ok, pid} <- Supervisor.start_link(children, opts), do: ...

Alexey
27.09.2017
07:38:22
да. по поводу загнивения. и в целом крутости ерланг. мильёны коннектов. сетевая непробиваемость ерланга. я тут с недельку упарывался тем, что простейший Hello World на Golang FastHTTP в два раза быстрее чем Elixir - Cowboy - Plug,

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

ну и условия для измерения. с мороза там вышел. или из моря с холодной водой

Google
Alexey
27.09.2017
07:40:38
даже вот взял дома тупой свитч 2000 года на 100 мегабит. и проводами соединил тестирующую машину. и тестируемую. для теста взял прям вот отдельную машину, без всяких там виртуализаций. поставил FreeBSD 11. ну и тестил с помощью JMeter. ну и вот по RPS получалось, что Golang сильно вперед выходит

я вот и страдал по этому поводу. пробовал несколько других вариантов HTTP на ерланг и эликсир. они все показывают меньший результат

еще есть ряд незаконченных самописных аксепторов TCP для приема HTTP И без разбора с отдачей прямо Hello World. ну чтоб сетевую часть на пробиваемость протестить

ряд - это уже 11 вариантов ))) ну вот 11й и 12й велосипеды по скорости RPS по мнению JMeter приблизились к скорости Cowboy

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

НО. решил тут попробовать в качестве тестировщика - Yandex.Tank

Зарядил нагрузку от 0 до 80К RPS

и получилось, что Еликсир-ковбой и Go FastHTTP показали почти одинаковый результат. Оба они уперлись в RPS порядка 5000. на используемом железе. с разницей в 500 RPS в пользу Golang

https://overload.yandex.net/46488

https://overload.yandex.net/46489

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

Andrey
27.09.2017
07:50:54
кул стори, бро

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

Alexey
27.09.2017
07:52:57
а. кстати еще вот такой момент интересный. на задаче установка соединения - получение данных - обработка - ответ - разрыв, это вот типичный случай для HTTP, не удалось найти разницу с включенным и выключенным EPOLL. как ни пробовал - получается ровно. со включенным EPoll даже иногда медленнее. гуглил, читал по этому поводу. похоже, что зависит от задачи. пишут, что в одних случаях выгоднее один из вариантов, в других - другой. предполагаю, что при постоянных коннектах по TCP может как раз EPoll помочь. та же история и про компиляцию в HiPE. никакой разницы нет по скорости.

есть исходникик вариантов и тестовых приложений? посмотреть хочется
так я статейку писал. в общем-то, те же самые два проекта и кручу. https://github.com/UA3MQJ/elx_small_http_cowboy https://github.com/UA3MQJ/go-small-fasthttp

Dmitry
27.09.2017
07:55:33
@bolshakov_av Понятно и логично, что Go быстрее будет в таких бенчмарках.

Alexey
27.09.2017
07:55:54
да вот, кстати, нет

я тоже так сначала думал

Dmitry
27.09.2017
07:56:27
Ну, он всё равно оказался на 500 быстрее

Alexey
27.09.2017
07:56:34
о чем и писал в статье

Google
Alexey
27.09.2017
07:56:35
https://habrahabr.ru/post/324818/

на что мне дали очень интересный каммент

https://habrahabr.ru/post/324818/#comment_10148168

"статически скомпилированная программа просто обязана быть быстрее виртуальной машины с интерпретатором"

"Оно как бы да, но это смотря а) как скомпилированна и б) с каким интерпретатором сравнивать..."

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

Alex
27.09.2017
07:59:33
было бы неплохо туда еще и голый erlang добавить с epoll

Alexey
27.09.2017
07:59:55
вот над этим сейчас как раз работаю

когда время нахожу )

Alex
27.09.2017
08:00:32
понятно)

Alexey
27.09.2017
08:01:02
но в принципе, тема - боян. и похожие исследования можно посмотреть https://habrahabr.ru/post/306590/

Dmitry
27.09.2017
08:01:38
так я статейку писал. в общем-то, те же самые два проекта и кручу. https://github.com/UA3MQJ/elx_small_http_cowboy https://github.com/UA3MQJ/go-small-fasthttp
Аа, так это ты на Хабер во всех статьях про Го в комментариях пишешь "вы все забыли про Эликсир, вот это крутая тема"?

Я тебя вычислил

Alexey
27.09.2017
08:02:24
конечно! восстанавливаю справедливость. а то они частенько пишут, что в го такая же многозадачность, как в ерланг. так я мимо такого бреда ну никак пройти не могу

Dmitry
27.09.2017
08:02:28
По нику

Alexey
27.09.2017
08:02:38
Я тебя вычислил
так я и не скрываюсь особо то )

Dmitry
27.09.2017
08:02:51
Так то ники разные

Nikita
27.09.2017
08:02:52
Господа, можете порекомендовать пакеты для атома (или не атома) для комфортной работы? Одного автокомплита маловато как-то оказывается, когда проект более-менее разрастается

Alexey
27.09.2017
08:03:13
а где у вас автокомплит работает?

Dmitry
27.09.2017
08:03:23
В эликсире работает

Google
Dmitry
27.09.2017
08:03:24
У меня

Nikita
27.09.2017
08:04:05
Сейчас использую atom + atom-elixir + linter-elixirc + language-elixir

Dmitry
27.09.2017
08:04:22
Spacemacs + layer elixir

Alexey
27.09.2017
08:04:51
в общем, в итоге, по поводу HTTP я всетаки нашел сервер H2O который даже по "неправильным" тестам от JMeter (который показывал разницу в 1.5 - 2 раза между ковбой и го) ну хоть чуть чуть, но порвал этот ваш Golang. на этом я успокоился и пошел таки спать



Nikita
27.09.2017
08:05:16
mac

Alex
27.09.2017
08:05:17
лучший автокомлит для атома это Visual Studio Code

Nikita
27.09.2017
08:05:39
Я бы и его попробывал, какие-то доп. пакеты нужны?

Dmitry
27.09.2017
08:06:04
В VSCOde тот же layer elixir от emacs

Всё из коробки

Даже иногда сам end дописывает после do

Nikita
27.09.2017
08:06:38
А интеграция с mix тасками есть какая-то? Чтобы на терминал постоянно не переключаться

Alex
27.09.2017
08:07:17
есть vscode-elixir

Dmitry
27.09.2017
08:08:07


Какие проблемы с терминалом, если он открывается через Ctrl+~

Как в кваке

Nikita
27.09.2017
08:09:06
Какие проблемы с терминалом, если он открывается через Ctrl+~
Не пользовался vscode, поэтому не знал, тогда проблем нет

Alexey
27.09.2017
08:09:51
это козыри. мы обычно заканчиваем на том, что у них многозадачность никакая.

Dmitry
27.09.2017
08:10:08

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