@dlangru

Страница 449 из 719
Pavel
11.03.2018
16:45:04
В виртуальной машине все хорошо, кроме виртуальности )

Pavel
11.03.2018
16:45:21
дык это дёшево щас
Особенно в свете последних багов в процах.

Pavel
11.03.2018
16:45:27
Как ни крути а производительность как у виртуальной машины а не как у железа

Evgeny
11.03.2018
16:45:42
О каких виртуальных машинах идет речь?
Всяких. Реальных и условных. JVM, CLR, BEAM

Google
Pavel
11.03.2018
16:45:50
если бы всё было с ними хорошо то все бы на них сидели
Но вообще ж, на них все и сидят по факту )

все джавы и интерпретируемые языки, подавляющая доля рынка

Кроме ресурсоемкой разработки

Evgeny
11.03.2018
16:46:37
.NET тоже можно условно отнести к виртуальным машинам

хотя конечно трудно провести границу после которой рантайм можно считать виртуальной машиной.

Dark
11.03.2018
16:47:35
Не .NET, а CLR

Evgeny
11.03.2018
16:47:55
Не .NET, а CLR
скорее IL + CLR + JIT

Dark
11.03.2018
16:48:16
JIT это для все VM вообще

Evgeny
11.03.2018
16:48:31
не обязательно

Dark
11.03.2018
16:48:34
IL - часть CLR

Так что CLR

Мне только неясна отличие VM от JIT-компилятора байткода

Evgeny
11.03.2018
16:50:49
Так что CLR
ну давай еще до посинения будем спорить, считать ли IL частью CLR или не считать.

Google
Dark
11.03.2018
16:51:09
До посинения не получится

Denis
11.03.2018
16:51:13
ад.во.ка.т.

)

Dark
11.03.2018
16:51:17
Меня забанят раньше

Evgeny
11.03.2018
16:52:21
Меня забанят раньше
Это можно считать вариантом посинения

АДВОКАТ!!!

Dark
11.03.2018
16:53:09
Сейчас надо еще поспорить, является мой бан вариантом посинения или нет :DDDDD

Но ладно, вернемся к нашим баранам

Мне только неясна отличие VM от JIT-компилятора байткода

Evgeny
11.03.2018
16:53:56
Мне только неясна отличие VM от JIT-компилятора байткода
эрланговская виртуальная машина в стандартной поставке не делает JIT компиляцию, пока еще

Dark
11.03.2018
16:54:22
А тогда какие функции она исполняет?

Evgeny
11.03.2018
16:54:33
Выполнение байт-кода

и предоставление API для всякого-разного

также она занимается уборкой мусора и управлением процессами

Dark
11.03.2018
16:56:14
А с процессами она что делает?

Evgeny
11.03.2018
16:56:57
процессы не системные, а эрланговские, а делает она с ними примерно тоже самое, что OS делает с системными процессами.

Dark
11.03.2018
16:57:13
А смысл?

Evgeny
11.03.2018
16:57:48
А смысл?
примерно такой же как в корутинах/файберах

только эрланговские процессы в этом деле, наверное, самые продвинутые на данный момент.

Dark
11.03.2018
16:58:20
Как там такой тип многозадачности называется?

Google
Evgeny
11.03.2018
16:58:40
корутины/файберы - кооперативный

в эрланге самый настоящий вытесняющий тип

Dmitry
11.03.2018
16:59:06
DCOM получается, только для IL only?
Нет. Как COM был чисто нативной технологией, так и DCOM, по идее. Но там наивный подсчет ссылок, который нужно делать вручную или через смартпоинтеры.

Dark
11.03.2018
16:59:37
в эрланге самый настоящий вытесняющий тип
Не проще ли положится на треды?

Evgeny
11.03.2018
17:00:20
Не проще ли положится на треды?
ну сколько ты можешь создать нативных тредов, чтобы все это добро не начало дичайше тормозить?

В эрланге можно скажем миллиончик сделать на не особо мощной машине

Dark
11.03.2018
17:04:29
В эрланге можно скажем миллиончик сделать на не особо мощной машине
Тормозить же все равно будет из-за нехватки процессорного времени

Pavel
11.03.2018
17:05:06
В хорошем или плохом смысле?
Затрудняюсь сказать, т.к. не понимаю логики работы GC.

Dark
11.03.2018
17:05:43
Ну вот

Evgeny
11.03.2018
17:05:46
Тормозить же все равно будет из-за нехватки процессорного времени
Смотря чем занимаются процессы. Если они ждут IO, а эрланг в основном на это заточен, то все будет вполне шустро.

Мерлин
11.03.2018
17:06:21
Не проще ли положится на треды?
закончишь тем, что будешь пилить свой костыль для гринтредов

потому что очень хочется асинхронности

Dark
11.03.2018
17:07:00
Evgeny
11.03.2018
17:07:14
С потоками на уровне ОС то же
Если бы так было, то никаких горутин/корутин/файберов, никто бы не изобретал

Мерлин
11.03.2018
17:07:18
Гринтреды с кооперативной же, не?
гринтреды — ето что угодно

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

Dark
11.03.2018
17:08:25
Если бы так было, то никаких горутин/корутин/файберов, никто бы не изобретал
Файберы по принципу кооперативки работают опять же. Тормазнул один файбер - работает другой

Google
Evgeny
11.03.2018
17:08:45
родные потоки они по тяжеловесности приближаются к родным же процессам

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

Dark
11.03.2018
17:10:38
а какая разница по-сути?
То, что принудительно по таймеру переключаются - одно, а совсем другое передавать право работы другим процессам

Dark
11.03.2018
17:13:22
те же эрланговские процессы очень легкие, их можно создавать и убивать просто пачками без серьезного оверхеда.
Вот затраты на создание потоков в ОС - да, оверхед. Но есть вариант реализации тредов в юзерспейсе(со своими минусами), что, видимо, мы и наблюдаем в эрланге

Dark
11.03.2018
17:15:06
и что?
Ну если использовать файберы для тяжеловесных вычеслений то остальные файберы не будут работать - многопотчности не будет

Evgeny
11.03.2018
17:15:37
гринтреды не для тяжеловесных вычислений.

Admin
ERROR: S client not available

Dark
11.03.2018
17:16:02
Конечно

Я просто ответил про разницу

Надо быстрые потоки - жертвуем функциональностью и пихаем их в нэймспейс

Другое дело, зачем спавнить и убивать потоки пачками?

Evgeny
11.03.2018
17:34:10
Другое дело, зачем спавнить и убивать потоки пачками?
стандартная нагрузка для всякого веба

Dark
11.03.2018
17:35:09
А

Ну для таких дел и гринтреды сгодяться

Зачем полноценные - непонятно

Evgeny
11.03.2018
17:36:26
Ну для таких дел и гринтреды сгодяться
ты наверное про кооперативную многозадачность vs вытесняющую

Google
Dark
11.03.2018
17:36:35
Именно

Evgeny
11.03.2018
17:36:52
гринтреды - это не обязательно кооперативная многозадачность

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

Dark
11.03.2018
17:39:48
Смешанная многозадачность?

Evgeny
11.03.2018
17:40:00
смешанная?

Denis
11.03.2018
17:40:21
такая как кооперативная, но по всем ядрам чтобы

Evgeny
11.03.2018
17:41:06
не совсем понятно о чем ты

Dark
11.03.2018
17:42:29
Я имел ввиду, что переключается либо по переходу в ждущее состояние потока, либо по таймауту

Evgeny
11.03.2018
17:43:49
если таймаут большой, то часть клиентов все равно будет вынуждена ждать пока расчухается тормоз, а если маленький, то это уже вытесняющая многозадачность.

Dark
11.03.2018
17:44:32
А если сначала большой, а потом маленький?)

Evgeny
11.03.2018
17:45:04
не знаю, сделай, проверь :)

Dark
11.03.2018
17:45:50
Не, как называться будет?

Dmitry
11.03.2018
17:45:52
А само ядро ОС в один поток работает?

Evgeny
11.03.2018
17:46:34
Не, как называться будет?
назови его DH-многозадачность

Dark
11.03.2018
17:46:44
А почему?

Evgeny
11.03.2018
17:46:57
А почему?
Ну в честь изобретателя :)

Dark
11.03.2018
17:47:06
Ааа

xDD

Stanislav
11.03.2018
17:49:55
немного вклинюсь не в ту сторону. ковыряю немного vibe-core. примеров встроенных чет мало. вайбовский TCPConnection чет разочаровал. (или я неправильно его готовлю) делаю так: void test_collback( TCPConnection c ) { try { if( !c.empty && c.connected ) { ubyte[] buf; c.read( buf ); } и он не заполняет динамический массив. если массив фиксированного размера создать - то всё ок - заполняет. но если его размер больше чем есть данных в сокете - ждет ? я думал он может все данные которые были пропушены (tcp flag PSH) может как-то отдать сразу. но пока чет не выходит каменный цветок. еще и сайт вайбда сломался походу

есть какие-нибудь популярные проекты на vibe-core кроме самого вайбда?)

Igor
11.03.2018
17:51:44
“еще и сайт вайбда сломался походу” - а зачем же ты его сломал??? (шутка)

Evgeny
11.03.2018
17:53:16
> и он не заполняет динамический массив. если массив фиксированного размера создать - то всё ок - заполняет. но если его размер больше чем есть данных в сокете - ждет ? так и есть

вот это тебе поможет http://vibed.org/api/vibe.core.net/TCPConnection.leastSize

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