The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

OpenNews: Почему Ruby и Python не могут занять место стареющей Java, opennews (??), 09-Июн-08, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


3. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Аноним (-), 09-Июн-08, 10:47 
в python и ruby поддержка многопоточности через (__|__)
а именно: в питоне есть GIL - глобальная блокировка интерпретатора, которая позволяет единовременно исполнятся только одному участку питоновского кода
(gil снимается для io операций и прочих вызовов c-шных модулей)
в руби - вообще своя реализация потоков usermode...
ТЕ ни в руби, ни в питоне нельзя (без бубна) написать программу использующую с помощью kernel threads в полной мере несколько процессоров... для серверных систем - актуальная задача.

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

а java, при куче её нелепостей, имеет вполне достойную поддержку многопоточности...

Ответить | Правка | Наверх | Cообщить модератору

10. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от kem (?), 09-Июн-08, 11:25 
>[оверквотинг удален]
>(gil снимается для io операций и прочих вызовов c-шных модулей)
>в руби - вообще своя реализация потоков usermode...
>ТЕ ни в руби, ни в питоне нельзя (без бубна) написать программу
>использующую с помощью kernel threads в полной мере несколько процессоров... для
>серверных систем - актуальная задача.
>
>в перле надо сказать поддержка многопоточности тоже не фантанная... хотя несколько лучше...
>
>
>а java, при куче её нелепостей, имеет вполне достойную поддержку многопоточности...

проблему GIL решает pp
http://www.parallelpython.com/

Ответить | Правка | Наверх | Cообщить модератору

139. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от pawnhearts (ok), 10-Июн-08, 11:04 
>а именно: в питоне есть GIL - глобальная блокировка интерпретатора, которая позволяет
>единовременно исполнятся только одному участку питоновского кода

http://pypi.python.org/pypi/processing

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

145. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Аноним (-), 10-Июн-08, 14:14 
запустить несколько процессов и пересылать между ними информацию, на smp системе есть костыль...
и не важно как она реализована... даже mpi, великолепно работающий на нескольких машинах, в рамках smp - не достаточно эффективен.

суть именно в ОБЩЕЙ памяти...
на практике, в системе с правильной архитектурой синхронизация потоков по доступу к памяти тратит намного меньше времени чем пересылка данных....

особенно ситуация стоит остро, в случае если обрабатываемый массив данных очень большой и все процессы его читают и изменяют...

---

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

Ответить | Правка | Наверх | Cообщить модератору

156. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от pawnhearts (ok), 10-Июн-08, 18:43 
>суть именно в ОБЩЕЙ памяти...
>на практике, в системе с правильной архитектурой синхронизация потоков по доступу к
>памяти тратит намного меньше времени чем пересылка данных....

вообще-то несколько процессов могут иметь общие области памяти изпоконвеков

>особенно ситуация стоит остро, в случае если обрабатываемый массив данных очень большой
>и все процессы его читают и изменяют...

ага и тут встает остро ситуация с синхронизацией.

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

какие-то узкие места всегда можно реализовать на C.
конечно, всё зависит от задач и подхода и т.п.

Ответить | Правка | Наверх | Cообщить модератору

157. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от pawnhearts (ok), 10-Июн-08, 18:46 
>хотя говоря по правде - падение производительности связанное с интерпретируемым языком значительно
>больше, чем можно выиграть на всех этих ньюансах..

вообще, конечно, если очень важна многопоточность и т.п. лучше использовать более специализированные языки типа erlang, etc.
python тут не самая умная идея, но всё-же он кое что может

Ответить | Правка | К родителю #145 | Наверх | Cообщить модератору

167. "Почему Ruby и Python не могут занять место стареющей Java"  +/
Сообщение от Michael Shigorinemail (ok), 10-Июн-08, 21:46 
> если очень важна многопоточность и т.п. лучше использовать
> более специализированные языки типа erlang

...по beam на ядро.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру