@dlangru

Страница 387 из 719
Mike
24.01.2018
10:33:31
А каждый настоящий микроэлектронщик — собрать свой троичный компьютер... и уже для него написать компилятор, либу, ось...... ? эхх... столько всего ещё в жизни не сделано, а уже лень
@sigod , вот ты опять подумаешь что это ирония...... а ведь много лет назад всё это действительно было в моих «далёких» планах... ? серьёзно

Igor
24.01.2018
10:34:14
эх, когда-то даже мультитаскер под мсдос писал на асме… детство золотое...

Mike
24.01.2018
10:36:18
эх, когда-то даже мультитаскер под мсдос писал на асме… детство золотое...
Мсдос не оставлял людям выбора ? я слышал про проект цифровой АТС на i486, для которой под дос чувак написал невытесняющий планировщик и это успешно работало и проект был сдан)

Google
Pavel
24.01.2018
10:37:20
А 30 лет назад все планировали сделать радио карманное

А 100 лет назад - плот или кораблик и уплыть на нем в кругосветку

Mike
24.01.2018
11:04:23
А сейчас все хотят «сделать мир лучше»......

Eto
24.01.2018
11:06:25
А сейчас от тимлида можно услышать "но JS же быстр, не сильно медленнее C++"

Mike
24.01.2018
11:22:03
А сейчас от тимлида можно услышать "но JS же быстр, не сильно медленнее C++"
Ну вообще так и есть вроде как) последняя версия движка nodeJS прекомилируемая и т.п. ? но я не уверен «на все 100» ?

Eto
24.01.2018
11:25:08
Так уж много толку, что оно прекомпилируется.

Dmitriy
24.01.2018
11:29:44
Ну, так-то достаточно толку) Если смотреть чисто математические операции, то V8 не уступает обычным сям. Работа с более сложными конструкциями само собой несколько медленнее, но оно и несколько проще в использовании и лаконичнее, тех же сей. Но кто бы что не говорил, я всё равно на стороне си) JS просто максимально близкая из удобных альтернатив, позволяющая спокойно работать с вебом не слишком сильно проигрывая в производительности. Так-то меня изначально D зацепил тем, что он как си, но с Java/JS удобствами

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

Alexey
24.01.2018
11:31:10
а чем плох vibe.d?

Dmitriy
24.01.2018
11:33:20
Он тяжёлый, медленный и содержит в себе слишком дофига зависимостей. То есть, я не могу как в JS набор примитивов и сам себе собрать набор только тех функций, что мне нужны. По мне, для D нужно сначала написать обычный пакет http и отдельно websocket, потом для них написать обёртку для "удобной" работы и интерфейсами для расширений. И к этой обёртке отдельными пакетами описать квери-парсеры, роутеры и прочее

Alexey
24.01.2018
11:33:46
медленный - это сколько запросов в секунду?

Stepanos
24.01.2018
11:35:12
Google
Alexey
24.01.2018
11:35:24
без конечно.

hello world

Dmitriy
24.01.2018
11:35:36
Сейчас речь чисто о запрос/ответ. База это отдельная статья, к ней претензий пока нет)

Alexey
24.01.2018
11:35:43
мы же не производительность бидэ измеряем

Dmitriy
24.01.2018
11:36:11
https://habrahabr.ru/post/303590/ В данном случае у меня скорее вопрос к этому бенчу

И вопрос скорее не в "скорости", он больше в том, что оно "жирное"

Alexey
24.01.2018
11:37:06
жирное? сколько оперативки жрет?

Dmitriy
24.01.2018
11:37:17
Ссылку на хабру с бенчем ж дал

Pavel
24.01.2018
11:38:05
медленный - это сколько запросов в секунду?
Мне удавалось из коробки выжать около 2к в секунду

Alexey
24.01.2018
11:38:29
20 Мб - в ОЗУ это не жирное. IMHO

Pavel
24.01.2018
11:38:37
спустившись на уровень libasync, я выжал 10к в секунду

Dmitriy
24.01.2018
11:39:42
Меня больше беспокоит то, как выглядит использование vibe.d. Из-за того, что он жирный нужно слишком много времени, чтобы пролистать все исходники, и не понятно сразу что от чего. Этим мне нравится нодовский пакет http + express + комплект миддлварей к нему. В данной ситуации я точно знаю что подключаю и зачем, есть доверие к используемым пакетам

вайбу доверия у меня пока нет, по причине выше озвученной

Alexey
24.01.2018
11:40:45
по хабрассылке у vibe.d и golang неотличимые показометры. в общем, дело вкуса что выбрать.

Dmitriy
24.01.2018
11:40:48
В вайб даже шаблонизатор встроен из коробки. Ну вот нафига?)

Pavel
24.01.2018
11:41:10
Ну шаблонизатор там не из коробки емнип

Dmitriy
24.01.2018
11:41:19
Роутер зачем ему из коробки? Может мне больше нравится чужой роутер и я хочу его миддлварем подцепить

Pavel
24.01.2018
11:41:19
А как отдельный субпакет ставится

Dmitriy
24.01.2018
11:42:17
Оно очень не гибко. Подписавшись на вайб я лишаюсь выбора. Я вынужден использовать всё, что в него напихали. Такой подход мне не нравится. Он слишом монолитный

Stepanos
24.01.2018
11:42:39
Мне удавалось из коробки выжать около 2к в секунду
а есть пример кода? у меня получилось diet страничка с двумя полями (без БД) более 50к запросов в секунду, і5 2400, в 4 потока

Google
Pavel
24.01.2018
11:43:11
Это с включенным keep-alive ?

С ним может быть, но я мерял без него

Mike
24.01.2018
12:23:56
спустившись на уровень libasync, я выжал 10к в секунду
не могу нагуглить что это за зверь и с чем его едят.... ?

Alexey
24.01.2018
12:26:22
https://github.com/etcimon/libasync

Evgeny
24.01.2018
12:41:59
Оно очень не гибко. Подписавшись на вайб я лишаюсь выбора. Я вынужден использовать всё, что в него напихали. Такой подход мне не нравится. Он слишом монолитный
Опять двадцать пять. Приходят умники, последний раз смотревшие на вайб в прошлом десятилетии и городят чепуху. Вайб давно уже порезан на сабмодули. не нравится встроенный хттп-сервер - не подключай его и он даже скачиваться не будет. Можешь только ядро подрубить и на голых вайбовских сокетах пилить свой http с блэкджеком и шлюхами. Не нравится роутер? Напиши свой и подруби к вайбовскому или своему хттп-серверу. Монолитность, извините, у вас в голове, а не в вайбе.

Pavel
24.01.2018
12:50:33
Мне кажется, сейчас экосистема D проходит в ускоренном режиме все те грабли на которые натыкались другие взрослеющие языки. Поначалу везде были монолитные библиотеки и фреймворки, обосновывали это тем что там каждый компонент к каждому очень хорошо подходит. Но потом все равно появлялись более независимые и компонентные вещи.

Pavel
24.01.2018
12:58:49
Они асинхронные и основаны на Stream

Evgeny
24.01.2018
12:58:55
» ...и на голых вайбовских сокетах ... А что это такое..? чем они отличаются от std.socket..?
с ними намного проще работать, а так, под капотом те же самые std.socket

Pavel
24.01.2018
13:00:59
Да не, как это под капотом те же самые? Там ваще они нигде не юзаются

Там все на асинхронных драйверах

Evgeny
24.01.2018
13:02:44
хотя в драйвере либасинк, вполее вероятно именно сокеты из фобоса задействованы.

которые сами - суть обертка системных.

Pavel
24.01.2018
13:05:27
В либасинке тоже нету стдшных, там максимум это InternetAddress используется для задания всяких опций

стдшные вообще не подходят, они же синхронные и однотредовые

Ну и работают помедленнее чем libasync насколько я помню

В общем вот супер-сверх-хайп задача: надо написать парсер http который работает в режиме betterC и не аллоцирует память вообще :)

Mike
24.01.2018
13:27:54
стдшные вообще не подходят, они же синхронные и однотредовые
1) вроде как ты им делает blocking=false и они перестают быть "синхронными" ? а насчёт "однотредовые" - тф что воообще имеешь в виду??......

Google
Pavel
24.01.2018
13:32:19
1) вроде как ты им делает blocking=false и они перестают быть "синхронными" ? а насчёт "однотредовые" - тф что воообще имеешь в виду??......
Ну из просто неблокирующих много не выжмешь, надо над ними строить eventloop и прочие механизмы, чтобы использовать в коде. На уровне libasync скорость драйвера сравнима с реализацией std.socket, поэтому им было резонно пойти на более низкий уровень и работать сразу с дескрипторами из libc и событиями оттуда же откуда-то.

По поводу однотредности - например libasync можно так извращаться - запустить 5 тредов, в каждом из них запустить свой eventloop, и все это дело подсеодинить к одному сокету, чтобы все треды асинхронно и параллельно растаскивали очередь из входящих соединений. Правда на практике все это глючит и падает в сегфолты, но std.socket так не умеет )

В общем понятно что все это своего рода обвязки над системными сокетами, просто они с разным объемом возможностей сделаны.

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

Mike
24.01.2018
13:37:14
в std более менее стандартный код, а в либасинке уже всякие хаки и подгонки под эффективность и производительность.
не нарушают ли они принцип Парето..?) ? мы ведь, всё-таки, в реальном мире живём......

Pavel
24.01.2018
13:37:54
ты про что? поясни?

Mike
24.01.2018
13:40:39
ты про что? поясни?
20% усиилй дают 80% результата, а оставшиеся 80% усилий - лишь оставшиеся 20% результата... (дословно) Есть ли смысл выжимать из сокетов все соки..? ? изгаляться со сторонними либами, низкоуровневыми хаками, тредами (которые fibers, если я правильно понял) и т.п..... стоит ли оно того в большинстве задач?

Pavel
24.01.2018
13:41:57
Конечно есть, ведь это же драйвер асинхронный, универсальная библиотека. Она должна работать по максимум, никто же не знает в каких проектах она будет использоваться.

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

Admin
ERROR: S client not available

Mike
24.01.2018
13:43:56
Pavel
24.01.2018
13:45:04
Ну не на ассемблере же писать? Тут вступают в дело перцентили.

В 80% хватит обычных сокетов, остальные 19% - libasync

Pavel
24.01.2018
13:45:43
Остальной 1% уже какой-нибудь софт на заказ с аппаратным ускорением и миллионными бюджетами

И соответственно работой на уровне ядра, с прямым доступом к сетевой карте и рассчетами на попадание в процессорный кеш и прочие извращения

Mike
24.01.2018
13:59:57
я свой STM32 на LDC без всякого betterC отлично программлю.
я тут боюсь загореться желанием прикрутить Dlang к ESP8266/ESP32...... ? предчувствую грабли больше чем везде... поделиcь кусочком опыта "Д+АРМ", пожаалуйста......... P.S> если статеечка, которую ты писал, уже читабельна - жду ссыль)))

Pavel
24.01.2018
14:07:35
Тонкая - ну такое... 3600 строк, GC и классы из кучи с виртуальными таблицами

Google
Pavel
24.01.2018
14:08:13
На хайлоаде в 10к это будет заметно медленнее чем низкий уровень либасинка

Evgeny
24.01.2018
14:26:23
На хайлоаде в 10к это будет заметно медленнее чем низкий уровень либасинка
Не смеши, на хайлоаде эта прослойка никогда не будет узким местом

Pavel
24.01.2018
14:27:49
?

Как прикольно читать такие утверждения когда на чемпионате по хайлоаду сам лично на все эти грабли наступил )

Evgeny
24.01.2018
14:29:29
ага, какому-нибудь эрлангу GC не мешает в хайлоад

или жабе

плюсам виртуальные таблицы не мещают в хайлоад

Pavel
24.01.2018
14:32:16
https://highloadcup.ru/

Evgeny
24.01.2018
14:32:37
многопоточность и сокеты - вообще ортогональные понятия

Pavel
24.01.2018
14:34:16
Посмотри там в рейтинге - erlang начинается с 109 места, а все джавы идут в связке с си

Который собственно и обрабатывает сокеты

Evgeny
24.01.2018
14:35:56
Посмотри там в рейтинге - erlang начинается с 109 места, а все джавы идут в связке с си
это потому, что этот чемпионат - очередное соревнование бенчмарков имеющее чуть более, чем ничего общего с реальностью.

Pavel
24.01.2018
14:36:21
Так это и есть реальность

Задача дана - решай на любой языке.

То что там специфичный случай - согласен, в реальных проектах редко такое бывает, но тем не менее, часть реальности

Evgeny
24.01.2018
14:37:49
а вот зачем ты либасинк использовал?

В этом причина твоего 65-го места

Pavel
24.01.2018
14:38:17
Я 37 занял на зачете емнип

Evgeny
24.01.2018
14:38:33
ну сейчас я смотрю, 65-ое

Pavel
24.01.2018
14:38:36
А рейтинг сейчас - это уже после того как народ 3 месяца свои проекты оптимизирует )

Тогда у меня было около 3 недель, пробовал все что можно, начиная с vibed естественно

Страница 387 из 719