@dlangru

Страница 602 из 719
Pavel
14.06.2018
16:30:38
Кстати да, запарился я с malloc/free писать ) Это оказалось куда сложнее чем я думал даже на простом коде

Oleg
14.06.2018
16:30:39
чтобы в процессе самой работы delegate не создавались и динамические массивы туда-сюда не изменяли размер

Pavel
14.06.2018
16:30:59
Там всякие косяки с адресами выделенных блоков и указателей на уже отработанные структуры

Google
Ievgenii
14.06.2018
16:47:36
Парни

У меня уже мозг плавится 3е сутки

Можете помочь:

Скомпильте у себя dub build

https://run.dlang.io/gist/22554a318b172cf26fdb2a67f3ee6182

Потом запустите и во второй консоле выполните что-то типа:

ab -c 1 -n 10000 127.0.0.1:8080/

У вас будут зависать запросы?

У меня как-то странно все работает

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

И зависает именно в libev-е

Я уже не знаю что делать...

Может это у меня просто криво компилится

Google
Ievgenii
14.06.2018
16:50:26
Буду очень признателен

Сейчас уже нужно убегать. Если кому-то будет не лень и он всеже сделает это - отпишитесь, я буду с телефона, но УЖАСНО интересно, что же именно там не так

Код, вроде, верно написан

Но вот не фурычит, хоть стреляй

Иначе прийдется на СтекОверфлоу идти спрашивать)))

Denis
14.06.2018
16:55:23
https://run.dlang.io/gist/22554a318b172cf26fdb2a67f3ee6182
Какой-то очень большой кусок непонятного

Код, вроде, верно написан
Не факт - большой он слишком

Ievgenii
14.06.2018
16:55:48
Я почистил

То за 3 дня столько эксперементов было, просто

Сейчас немного почистил

Не факт - большой он слишком
То я уже пытался на либевент2 переписывать)))

Пробовал кто-то?

Denis
14.06.2018
17:59:05
дык ссылку дай заново с нормальным текстом программы

Ievgenii
14.06.2018
18:09:55
Я пересохранил ту

О.о

Не

Вот https://run.dlang.io/gist/19963317ef39aa059e60f70af8126130

С телефона редачил

Denis
14.06.2018
18:34:49
не для того я С забросил чтобы на низкоуровневый C-like код смотреть в Ди

Google
Denis
14.06.2018
18:34:58
Ну что-то где-то забыл, дебажь, чо.

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

Denis
14.06.2018
18:56:56
у меня нет программы ab

я уже напился

ночь же, завтра может

Ievgenii
14.06.2018
18:57:23
Ясно

А не рано празнуешь?) Четверг ведь только))

Ievgenii
14.06.2018
19:02:28
А) футбол смотришь)

Ievgenii
14.06.2018
19:02:33
И кто выиграл?

Dmitry
14.06.2018
19:05:11
- Как сегодня наши сыграли? - Проиграли. Мужчины 0:65, женщины 0:63...

Dark
14.06.2018
19:08:40
А) футбол смотришь)
Не, я как раз не смотрю

Ievgenii
14.06.2018
19:24:57
Как вариант, завтра на работе на какой-то виртуалке попробовать сбилдить и протестить, а не на рабочем компе

Dark
14.06.2018
20:30:14
А в D есть таймер? Что бы отложить выполнение функции на некоторое время, не блокируя поток

Pavel
14.06.2018
20:39:18
Нет, как ты себе это представляешь?

Можно только через другой поток либо через event loop

Dark
14.06.2018
20:41:10
Я так и думал

Google
Dark
14.06.2018
20:44:16
это не функция языка
Имелся ввиду std

Точнее, phobos

Ievgenii
14.06.2018
22:29:21
проверил - не виснет
Несколько раз?

У меня не сразу оно зависало

Иногда виснет, иногда нет...

Я уже не знаю, на что грешить

А в D есть таймер? Что бы отложить выполнение функции на некоторое время, не блокируя поток
Запусти новый тред, при старте сделай ему слип, на сколько тебе нужно, а потом выполняй код и выключай тред

Admin
ERROR: S client not available

Ievgenii
14.06.2018
22:30:44
Костыль, но решает твою задачу

Andrey
15.06.2018
04:22:21
Несколько раз?
несколько раз. попробую позже позапускать еще, самому интересно

Ievgenii
15.06.2018
04:31:00
Теперь я вообще в тупике.

Ты под убунтой?

Andrey
15.06.2018
04:34:01
хотя...) посмотри netstat -ntp после запуска - все твои соединения висят в time_wait. то есть сервер сделал send, данные в буфере отправки, но не ушли. может сокеты кончаются...) ладно, сейчас уже некогда, позже

под минтом, но считай да

Ievgenii
15.06.2018
04:35:01
под минтом, но считай да
Можешь сбросить бинарь?

qwerty
15.06.2018
09:51:44
Unique из std работает у кого-нибудь? https://run.dlang.io/gist/257def92584903b9d811bdd93f5c1bd8

Dark
15.06.2018
10:00:34
Он последовательные повторения убирает вроде

Google
Stanislav
15.06.2018
10:02:47
это другой unique )

Dark
15.06.2018
10:04:44
Возможно

Dmitry
15.06.2018
11:53:51
ab -c 1 -n 10000 127.0.0.1:8080/
Позапускал у себя много раз, все работает.

Ievgenii
15.06.2018
11:59:48
Позапускал у себя много раз, все работает.
А последние реквесты не висели долго?

Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 0 80% 0 90% 0 95% 1 98% 1 99% 1 100% 31279 (longest request)

Вон, парочка коннектов просто зависло

И весели 31 секунду

Dmitry
15.06.2018
12:01:06
Нет, 2-3 ms там

Unique из std работает у кого-нибудь? https://run.dlang.io/gist/257def92584903b9d811bdd93f5c1bd8
Там дока неправильная, нет никакого create. Надо:

auto u = Unique!C(new C);

qwerty
15.06.2018
12:01:58
аа, ок

спасибо!

а кто-нибудь случайно не знает где-нибудь double linked list, который может работать с Unique?

стандартный не работает

dlist из emsi containers тоже

Ievgenii
15.06.2018
12:06:34
Нет, 2-3 ms там
Странно

Но это какой-то плавающий баг

Не всегда проявляется :(

Pavel
15.06.2018
12:09:12
Я такую же интересную фигню наблюдал в vibed

По непонятным причинам из десяти тысяч запросов 1-2 зависали надолго )

Может это тоже была особенность eventloop который был драйвером для vibe.d

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