
Ievgenii
13.09.2018
19:50:58

Pavel
13.09.2018
19:51:11
Ну и еще говорят что в типе Variant тоже как-то все косячно реализовано.

Ievgenii
13.09.2018
19:51:38
Как он это может?

Google

Ievgenii
13.09.2018
19:51:55
Он не знает о последовательности полей
О их типе

Pavel
13.09.2018
19:52:05
Ну как-то, с помощью чудесной магии крутого и гибкого языка )

Ievgenii
13.09.2018
19:52:07
До того, пока не создаст

Igor
13.09.2018
19:52:11
о )))

Ievgenii
13.09.2018
19:52:17
Это рефлексия
И она, как раз, медленная
+ в исходники поместится куча не нужной инфы о структуре...
Выдели в куче
Если у тебя плагинов будет, скажем, 10
То если куча в 10 раз медленнее, то ты получишь тот же выхлоп
Главное не забыть после очистить эту память!

Google

Pavel
13.09.2018
19:54:33
Если у тебя плагинов будет, скажем, 10
Как и при написании любого лютого софта я мыслю что плагинов будет под сотню и бот сидит одновременно в 500 чатах, более того сидит сотня инстансов такого бота. И сообщения валят сотнями в секунду.
Иначе если не входить в такие крайности, то я и на php могу спокойно бота написать.

Ievgenii
13.09.2018
19:55:08

Igor
13.09.2018
19:55:55
тогда безусловно принимаешь в immutable event и отдаёшь ref
без куч

Ievgenii
13.09.2018
19:56:37
Тогда тем более будет быстрее!
Чем создавать 100 или 500 структур на стеке в отправителе, а потом столько же в получателе, + копирование самих данных, а если их там много....

Pavel
13.09.2018
19:57:05

Ievgenii
13.09.2018
19:57:29

Pavel
13.09.2018
19:57:29
Насчет переиспользования созданной структуры из пула, и выделения структуры на стеке - скорость одинакова по идее.

Ievgenii
13.09.2018
19:57:39
И используешь ее везде
Дык нет
Ты создаёшь всего одну!

Pavel
13.09.2018
19:58:06
И используешь ее везде
Как я ее везде использую когда сообщение может обрабатываться некоторое время и за это время придет несколько других сообщений
На каждое сообщение своя структура

Ievgenii
13.09.2018
19:59:12
Ну ты создаёшь столько, сколько приходит сообщений
Но не умножается на количество плагинов
500 сообщений в секунду, а плагинов 100
Выходит 500*100=50'000 в сек

Google

Ievgenii
13.09.2018
20:00:13
50'000*2
Выходит 100К в сек
А так всего 500*2
То есть 1К
В 100 раз меньше
Профит
Но чуть сложнее
Ну так если ты пишешь серьезное приложение, оно будет сложное
Тут основная проблема - когда удалять структуру
Нужно отлавливать ситуацию, когда все плагины отработали

Pavel
13.09.2018
20:04:14
Ну, я еще не знаю какие структуры могут быть в будущем. Может они станут сильно разнообразными.

Oleg
13.09.2018
20:04:52
@chebotarevp так норм? https://run.dlang.io/is/rjsqkA

Pavel
13.09.2018
20:04:54
Сложности еще будут впереди, а они уже так быстро начались.

Ievgenii
13.09.2018
20:05:25

Igor
13.09.2018
20:06:05
строки и так шарятся
сложности будут если там есть unshared references

Oleg
13.09.2018
20:06:49
@chebotarevp просто в любом случае std.concurrency использует массив для хранения очереди, тут устраняется проблема с Variant и копированием immutable

Ievgenii
13.09.2018
20:08:52

Oleg
13.09.2018
20:09:00

Google

Pavel
13.09.2018
20:09:04

Ievgenii
13.09.2018
20:09:38

Pavel
13.09.2018
20:09:48

Ievgenii
13.09.2018
20:09:58
Вот и делай решение, которое будет подходить всегда

Igor
13.09.2018
20:10:03
ну строки это структура котрая указывает на иммутабельные данные эту структуру можно спокойно передавать между тредами

Oleg
13.09.2018
20:10:12

Dark
13.09.2018
20:10:54
Так, у меня немного оффтопный вопрос. А в C++ можно как в dmd получить код уже с развернутыми темплейтами?

Pavel
13.09.2018
20:10:55

Oleg
13.09.2018
20:11:08

Ievgenii
13.09.2018
20:11:26

Admin
ERROR: S client not available

Oleg
13.09.2018
20:11:27
просто этот messageBox это объект каждого потока

Dark
13.09.2018
20:11:38

Ievgenii
13.09.2018
20:12:06

Pavel
13.09.2018
20:12:56

Dark
13.09.2018
20:14:05

Ievgenii
13.09.2018
20:14:26

Igor
13.09.2018
20:17:11

Dark
13.09.2018
20:17:37

Pavel
13.09.2018
20:21:13

Google

Pavel
13.09.2018
20:22:10

Ievgenii
13.09.2018
20:47:15
А с классами такого не выйдет
Точнее выйдет, но не симпотно
Да и тут чисто модель данных
Самое то для структуры

Oleg
13.09.2018
21:05:24

Глеб
14.09.2018
02:35:34
слушайте, я не понимаю. ну зачем пытаться копировать иммутабельную структуру и пытаться переприсваивать другой иммутабельной структуре? зачем насиловать компилятор? передача указателя некомильфо? но ведь это самый естественный вариант, компилятор уже даёт гарантии за счёт иммутабельности. ну надо же учитывать, хотя бы в общих чертах, что должно происходить на низком уровне! такое впечатление, что из идеологических соображений в часовом механизме начинаем копаться ломом

Maxim
14.09.2018
04:11:36
более того, в D работа со структурой и с указателем на структуру синтаксически ничем не отличается

Igor
14.09.2018
06:16:06

Ievgenii
14.09.2018
06:27:01

Dmitry
14.09.2018
06:28:56
А указатель на стек не возможен?

NullSanya
14.09.2018
06:29:14
Но время жизни ограниченно

Igor
14.09.2018
06:30:41

Dmitry
14.09.2018
06:30:43
Типа после переключения между тредами ссылка может умереть?

Maxim
14.09.2018
06:30:57
не может, а умрет

NullSanya
14.09.2018
06:31:16
Скорее после выхода из функции
Ну в расте считается, что ссылка, передаваемая в другой поток, должна жить вечно

Maxim
14.09.2018
06:32:05
дело не в ссылке и расте, а в стеке)

Toha
14.09.2018
06:32:08
или жсфидл
или чо там модно щас