Сообщение Re[28]: Смысл функционального программирования? от 04.05.2015 17:40
Изменено 04.05.2015 17:58 Pauel
Здравствуйте, Mamut, Вы писали:
M>Практически единственное, что нужно Эрлангу от хостовой ОСи — это то, как быстро хостовая ОСь может отдавать/получать данные по сокету (так как Эрланг — в основном для распределенных приложений).
Это безграмотное утверждение. Любой процесс искаропки использует целую кучу системных возможностей. Например нужно выделять память. Хочешь или нет, но это вызов ядра. Далее, у тебя нет никакого контроля над дисковой памятью — винда даёт тебе виртуальную и ты не знаешь, что это, файл или чипы. Отсюда ясно, что дисковый ввод-вывод практически неизбежен.
M>VM достаточно умна, чтобы минимизировать по максимуму переключения даже контекстов ядер, не то что потоков в системе (и это вдобавок еще и настраивается кучей параметров).
Если хостовая ОС не даёт гарантий, то VM в самом идеальном случае даст ровно тот же результат — отсутствие гарантий. Самый простой пример — ОС не переключает контекст и эрланговый поток не выполняется.
Вопрос — как VM эрланга заборет такую проблему ?
M>Поэтому Erlang вполне может именно что гарантировать soft realtime практически на любой хостовой ОСи. Вне зависимости от того, что думают об этом ничего не знающие про Эрланг люди.
Ты в курсе, что винда вообще не гарантирует, когда же контекст переключит и еще меньше гарантирует, когда нативный поток вернет управлени ? Ты в курсе, что у ней вытесняющая многозадачность ?
Для того, что бы изменить хоть как то такой расклад, VM эрланга должна в обязательном порядке вмешитьвася в работу виндовского ядра, драйверов и шедулера. Вот скажем те же сокеты требуют работу с сетью, а значит задействую чуть не всё ядро винды.
Все что ты можешь сделать на винде —
1. отключить вообще всё — приложения, сервисы, драйверы
2. увеличить по максимуму память, запретить использование свопа
3. вырубить на материнке вообще всё железо, кроме сетевого, а то железо может пользоваться шиной само по себе, даже без драйверов.
4. повысить приоритет потока эрланга до realtime(теоретически, предположим, никаких проблем это не повлечет)
Самое смешное, что даже с такими приседаниями винда принципиально не даёт никаких гарантий !
P.S. soft realtime это для тех кастомеров, которые позволяют себе лапшу на уши вешать.
P.P.S. Для тех, кто плохо умеет под винду
Внимание — реальное время выполнения каждой итерации может варьироваться от 100мс до бесконечности.
Никакой эрланг здесь ничего принципиально не изменит и изменить не может.
M>Практически единственное, что нужно Эрлангу от хостовой ОСи — это то, как быстро хостовая ОСь может отдавать/получать данные по сокету (так как Эрланг — в основном для распределенных приложений).
Это безграмотное утверждение. Любой процесс искаропки использует целую кучу системных возможностей. Например нужно выделять память. Хочешь или нет, но это вызов ядра. Далее, у тебя нет никакого контроля над дисковой памятью — винда даёт тебе виртуальную и ты не знаешь, что это, файл или чипы. Отсюда ясно, что дисковый ввод-вывод практически неизбежен.
M>VM достаточно умна, чтобы минимизировать по максимуму переключения даже контекстов ядер, не то что потоков в системе (и это вдобавок еще и настраивается кучей параметров).
Если хостовая ОС не даёт гарантий, то VM в самом идеальном случае даст ровно тот же результат — отсутствие гарантий. Самый простой пример — ОС не переключает контекст и эрланговый поток не выполняется.
Вопрос — как VM эрланга заборет такую проблему ?
M>Поэтому Erlang вполне может именно что гарантировать soft realtime практически на любой хостовой ОСи. Вне зависимости от того, что думают об этом ничего не знающие про Эрланг люди.
Ты в курсе, что винда вообще не гарантирует, когда же контекст переключит и еще меньше гарантирует, когда нативный поток вернет управлени ? Ты в курсе, что у ней вытесняющая многозадачность ?
Для того, что бы изменить хоть как то такой расклад, VM эрланга должна в обязательном порядке вмешитьвася в работу виндовского ядра, драйверов и шедулера. Вот скажем те же сокеты требуют работу с сетью, а значит задействую чуть не всё ядро винды.
Все что ты можешь сделать на винде —
1. отключить вообще всё — приложения, сервисы, драйверы
2. увеличить по максимуму память, запретить использование свопа
3. вырубить на материнке вообще всё железо, кроме сетевого, а то железо может пользоваться шиной само по себе, даже без драйверов.
4. повысить приоритет потока эрланга до realtime(теоретически, предположим, никаких проблем это не повлечет)
Самое смешное, что даже с такими приседаниями винда принципиально не даёт никаких гарантий !
P.S. soft realtime это для тех кастомеров, которые позволяют себе лапшу на уши вешать.
P.P.S. Для тех, кто плохо умеет под винду
while(TRUE)
{
::Sleep(100);
}Внимание — реальное время выполнения каждой итерации может варьироваться от 100мс до бесконечности.
Никакой эрланг здесь ничего принципиально не изменит и изменить не может.
Re[28]: Смысл функционального программирования?
Здравствуйте, Mamut, Вы писали:
M>Практически единственное, что нужно Эрлангу от хостовой ОСи — это то, как быстро хостовая ОСь может отдавать/получать данные по сокету (так как Эрланг — в основном для распределенных приложений).
Это безграмотное утверждение. Любой процесс искаропки использует целую кучу системных возможностей. Например нужно выделять память. Хочешь или нет, но это вызов ядра. Далее, у тебя нет никакого контроля над оперативной памятью — винда даёт тебе виртуальную и ты не знаешь, что это, файл или чипы. Отсюда ясно, что дисковый ввод-вывод практически неизбежен.
M>VM достаточно умна, чтобы минимизировать по максимуму переключения даже контекстов ядер, не то что потоков в системе (и это вдобавок еще и настраивается кучей параметров).
Если хостовая ОС не даёт гарантий, то VM в самом идеальном случае даст ровно тот же результат — отсутствие гарантий. Самый простой пример — ОС не переключает контекст и эрланговый поток не выполняется.
Вопрос — как VM эрланга заборет такую проблему ?
M>Поэтому Erlang вполне может именно что гарантировать soft realtime практически на любой хостовой ОСи. Вне зависимости от того, что думают об этом ничего не знающие про Эрланг люди.
Ты в курсе, что винда вообще не гарантирует, когда же контекст переключит и еще меньше гарантирует, когда нативный поток вернет управлени ? Ты в курсе, что у ней вытесняющая многозадачность ?
Для того, что бы изменить хоть как то такой расклад, VM эрланга должна в обязательном порядке вмешитьвася в работу виндовского ядра, драйверов и шедулера. Вот скажем те же сокеты требуют работу с сетью, а значит задействую чуть не всё ядро винды.
Все что ты можешь сделать на винде —
1. отключить вообще всё — приложения, сервисы, драйверы
2. увеличить по максимуму память, запретить использование свопа
3. вырубить на материнке вообще всё железо, кроме сетевого, а то железо может пользоваться шиной само по себе, даже без драйверов.
4. повысить приоритет потока эрланга до realtime(теоретически, предположим, никаких проблем это не повлечет)
Самое смешное, что даже с такими приседаниями винда принципиально не даёт никаких гарантий !
P.S. soft realtime это для тех кастомеров, которые позволяют себе лапшу на уши вешать.
P.P.S. Для тех, кто плохо умеет под винду
Внимание — реальное время выполнения каждой итерации может варьироваться от 100мс до бесконечности.
Никакой эрланг здесь ничего принципиально не изменит и изменить не может.
M>Практически единственное, что нужно Эрлангу от хостовой ОСи — это то, как быстро хостовая ОСь может отдавать/получать данные по сокету (так как Эрланг — в основном для распределенных приложений).
Это безграмотное утверждение. Любой процесс искаропки использует целую кучу системных возможностей. Например нужно выделять память. Хочешь или нет, но это вызов ядра. Далее, у тебя нет никакого контроля над оперативной памятью — винда даёт тебе виртуальную и ты не знаешь, что это, файл или чипы. Отсюда ясно, что дисковый ввод-вывод практически неизбежен.
M>VM достаточно умна, чтобы минимизировать по максимуму переключения даже контекстов ядер, не то что потоков в системе (и это вдобавок еще и настраивается кучей параметров).
Если хостовая ОС не даёт гарантий, то VM в самом идеальном случае даст ровно тот же результат — отсутствие гарантий. Самый простой пример — ОС не переключает контекст и эрланговый поток не выполняется.
Вопрос — как VM эрланга заборет такую проблему ?
M>Поэтому Erlang вполне может именно что гарантировать soft realtime практически на любой хостовой ОСи. Вне зависимости от того, что думают об этом ничего не знающие про Эрланг люди.
Ты в курсе, что винда вообще не гарантирует, когда же контекст переключит и еще меньше гарантирует, когда нативный поток вернет управлени ? Ты в курсе, что у ней вытесняющая многозадачность ?
Для того, что бы изменить хоть как то такой расклад, VM эрланга должна в обязательном порядке вмешитьвася в работу виндовского ядра, драйверов и шедулера. Вот скажем те же сокеты требуют работу с сетью, а значит задействую чуть не всё ядро винды.
Все что ты можешь сделать на винде —
1. отключить вообще всё — приложения, сервисы, драйверы
2. увеличить по максимуму память, запретить использование свопа
3. вырубить на материнке вообще всё железо, кроме сетевого, а то железо может пользоваться шиной само по себе, даже без драйверов.
4. повысить приоритет потока эрланга до realtime(теоретически, предположим, никаких проблем это не повлечет)
Самое смешное, что даже с такими приседаниями винда принципиально не даёт никаких гарантий !
P.S. soft realtime это для тех кастомеров, которые позволяют себе лапшу на уши вешать.
P.P.S. Для тех, кто плохо умеет под винду
while(TRUE)
{
::Sleep(100);
}Внимание — реальное время выполнения каждой итерации может варьироваться от 100мс до бесконечности.
Никакой эрланг здесь ничего принципиально не изменит и изменить не может.