
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

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

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

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
В эрланге можно скажем миллиончик сделать на не особо мощной машине

Pavel
11.03.2018
17:04:03

Dark
11.03.2018
17:04:29

Pavel
11.03.2018
17:05:06

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

Evgeny
11.03.2018
17:05:46

Dark
11.03.2018
17:06:03

Мерлин
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
а какая разница по-сути?
То, что принудительно по таймеру переключаются - одно, а совсем другое передавать право работы другим процессам

Evgeny
11.03.2018
17:11:06

Dark
11.03.2018
17:13:22

Evgeny
11.03.2018
17:14:07
и на переключение контекстов

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

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

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