Здравствуйте, Sinclair, Вы писали:
EC>>С той разницей, что это просто набивается в консоли, не требует компиляции и легко отлаживется. EC>>И главное — короче. S>
S>Зато это поймешь даже ты. А вот PhantomIvan пришлось объяснять, что значат твои кракозяблы.
Понять то я, например, пойму, но сходу не напишу. Но это мелочь. Ибо, мне думается, что в твоей программе функциональный баг. Который вылезет если им посчитать кол-во строк в 10ти гиговом файле. Короче, шелу — скриптинг, шарпу — шарпинг
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Здравствуйте, Курилка, Вы писали:
К>>Вообще одним из тех, кто тебе отвечал и одним из первых, упомянувших про эту библиотеку был я К>>Если по сути — интересно, вроде как всего в 2 раза медленней Эрланга.
АХ>Не знаю как всего в два раза, а здесь Scala совершенно ужасно тормозит (в 10 раз медленнее Erlang с жутким перерасходом памяти или в 60 раз без него). Да, на первом месте Mozart/Oz .
АХ>Ща проведу замеры для Windows...
А ты код смотрел скаловский? Там акторов и в помине нет, так что снова некорректное сравнение
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Здравствуйте, Курилка, Вы писали:
К>>Вообще одним из тех, кто тебе отвечал и одним из первых, упомянувших про эту библиотеку был я К>>Если по сути — интересно, вроде как всего в 2 раза медленней Эрланга.
АХ>Не знаю как всего в два раза, а здесь Scala совершенно ужасно тормозит (в 10 раз медленнее Erlang с жутким перерасходом памяти или в 60 раз без него). Да, на первом месте Mozart/Oz .
АХ>Ща проведу замеры для Windows...
Хотя вру
Просмотрел, просто ресив там не выделяется
Какие-то страшные циферки, однако
Здравствуйте, Курилка, Вы писали: К>А ты код смотрел скаловский? Там акторов и в помине нет, так что снова некорректное сравнение
Отчего же?
/* The Computer Language Shootout
http://shootout.alioth.debian.org/
contributed by Philipp Haller
*/import scala.actors._; import scala.actors.Actor._
object message {
def main(args: Array[String]) = {
val n = Integer.parseInt(args(0)); val nActors = 500; val finalSum = n * nActors
Scheduler.impl = new SingleThreadedScheduler
def beh(next: Actor, sum: int): unit =
react {
case value: int =>
val j = value + 1; val nsum = sum + j
if (next == null && nsum >= finalSum) {
Console.println(nsum)
System.exit(0)
}
else {
if (next != null) next ! j
beh(next, nsum)
}
}
def actorChain(i: Int, a: Actor): Actor =
if (i > 0) actorChain(i-1, actor(beh(a, 0))) else a
val firstActor = actorChain(nActors, null)
var i = n; while (i > 0) { firstActor ! 0; i = i-1 }
}
}
Здравствуйте, PhantomIvan, Вы писали:
PI>>>там обычные потоки из джавы? PI>>>зуб даю, быстрее будет К>>Нет там потоков. К>>В том весь и смысл, что параллельность получается не на потоках ОС, т.е. нет постоянных переключений контекста, что позволяет ускорить работу приложения (при наличии нескольких процессов). PI>я имел в виду, дотнет будет быстрее джавы, а не "дотнет будет быстрее эрланга"
Да вопрос-то как раз в том, что там нет потоков в этих скаловских акторах. Хотя по идее есть вариант реализации на тредах, но он реально безпоточному сливает (на очень большом числе процессов). Посмотри ту же инфу, что Мартин Одерски приводил (там графики были, насколько помню).
Почитаешь — было бы интересно послушать результаты
И интересно было бы увидеть эрланговскую модель на статически типизированном языке. Причём не только посылку сообщений (что есть в скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в рамках больше чем одной ВМ)
Здравствуйте, Курилка, Вы писали:
К>И интересно было бы увидеть эрланговскую модель на статически типизированном языке. Причём не только посылку сообщений (что есть в скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в рамках больше чем одной ВМ)
Эх. Как раз хочу таким заняться. Не сей секунд канеш, но в принципе вот
... << RSDN@Home 1.2.0 Marilyn Manson — Tainted Love >>
Здравствуйте, Курилка, Вы писали:
К>Да вопрос-то как раз в том, что там нет потоков в этих скаловских акторах. Хотя по идее есть вариант реализации на тредах, но он реально безпоточному сливает (на очень большом числе процессов). Посмотри ту же инфу, что Мартин Одерски приводил (там графики были, насколько помню). К>Почитаешь — было бы интересно послушать результаты К>И интересно было бы увидеть эрланговскую модель на статически типизированном языке. Причём не только посылку сообщений (что есть в скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в рамках больше чем одной ВМ)
Ну, пытаемся потихоньку. И пример Одерски с передачей токенов был сделан и пропускная способность была замерена. Пока на C++, а со временем на что-нибудь управляемое, со сборкой мусора переползем.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, Курилка, Вы писали:
К>>И интересно было бы увидеть эрланговскую модель на статически типизированном языке. Причём не только посылку сообщений (что есть в скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в рамках больше чем одной ВМ) M>Эх. Как раз хочу таким заняться. Не сей секунд канеш, но в принципе вот
Здравствуйте, eao197, Вы писали:
E>Ну, пытаемся потихоньку. И пример Одерски с передачей токенов был сделан и пропускная способность была замерена. Пока на C++, а со временем на что-нибудь управляемое, со сборкой мусора переползем.
Т.е. это практически один в один Скаловский вариант? Сообщения передаются в рамках одного процесса ОС?
Куда заглянуть, чтобы посмотреть исходники механизма "посылальщика"?
Здравствуйте, Курилка, Вы писали:
К>>>И интересно было бы увидеть эрланговскую модель на статически типизированном языке. Причём не только посылку сообщений (что есть в скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в рамках больше чем одной ВМ) M>>Эх. Как раз хочу таким заняться. Не сей секунд канеш, но в принципе вот
К>На чём?
Пока не решил. Врядли Haskell, хотя идея довольно шизова и этим мне нравится
Либо Nermele(что скорее всего, потому что дот нет) либо Scala либо Oz либо Qi(правда он строго типизированный, но не статически вроде)
В общем еще смотрю, где будет это проще сделать. Да и сам Erlang тоже ковырять еще надо.
Здравствуйте, Курилка, Вы писали:
E>>Ну, пытаемся потихоньку. И пример Одерски с передачей токенов был сделан и пропускная способность была замерена. Пока на C++, а со временем на что-нибудь управляемое, со сборкой мусора переползем.
К>Т.е. это практически один в один Скаловский вариант? Сообщения передаются в рамках одного процесса ОС? К>Куда заглянуть, чтобы посмотреть исходники механизма "посылальщика"?
Уж не знаю, насколько это точно соответствует Scala, поскольку мы его написали практически сразу как ты дал ссылку на работу Одерски. Но, вроде как похоже
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
S>>Зато это поймешь даже ты. А вот PhantomIvan пришлось объяснять, что значат твои кракозяблы.
ANS>Понять то я, например, пойму, но сходу не напишу. Но это мелочь. Ибо, мне думается, что в твоей программе функциональный баг. Который вылезет если им посчитать кол-во строк в 10ти гиговом файле.
что-то вроде
Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, Курилка, Вы писали:
К>>>>И интересно было бы увидеть эрланговскую модель на статически типизированном языке. Причём не только посылку сообщений (что есть в скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в рамках больше чем одной ВМ) M>>>Эх. Как раз хочу таким заняться. Не сей секунд канеш, но в принципе вот
К>>На чём?
M>Пока не решил. Врядли Haskell, хотя идея довольно шизова и этим мне нравится
Это была бы реально жесть M>Либо Nermele(что скорее всего, потому что дот нет) либо Scala либо Oz либо Qi(правда он строго типизированный, но не статически вроде)
А разве в оз нету поддержки конкарренси? Вроде это одна из фич...
По идее на лиспе есть потуги организовать что-то типа эрланговских процессов : http://www.mu.dk/cl-muproc http://www.dirkgerrits.com/programming/erlisp/
Но тут статики не получится, да и на Qi тоже, там же не обязательна типизация. M>В общем еще смотрю, где будет это проще сделать. Да и сам Erlang тоже ковырять еще надо.
Весь вопрос ЧТО сделать
Т.е. мне вот интересно — возможно ли вообще эрланговскую модель без динамики получить?
Здравствуйте, PhantomIvan, Вы писали:
PI>regexp match(file.ReadLine())
PI>ещё понятнее, не так ли?
не так. мне не понятна семантика. Оно что, вызывает ReadLine до получения EOF? В доке сказано, что оно принимает выражение вычисляемое в строку и не сказано, что это выражение вычисляется до опупения.
Курилка wrote: > И интересно было бы увидеть эрланговскую модель на статически > типизированном языке. Причём не только посылку сообщений (что есть в > скале), но и хотябы часть инфраструктуры (как минимум взаимодействие в > рамках больше чем одной ВМ)
Спроси у eao197 — у него фактически это уже сделано для С++ в виде
SObjectizer.
Здравствуйте, Курилка, Вы писали:
К>А разве в оз нету поддержки конкарренси? Вроде это одна из фич...
Там какая-то своя модель. Насколько я понял, она чем-то отличается от Эрланга. Но надо еще смотреть. Но врать не буду. Мое знакомство с Oz закончилось просмотром по диагонали их книги.
К>По идее на лиспе есть потуги организовать что-то типа эрланговских процессов : К>http://www.mu.dk/cl-muproc К>http://www.dirkgerrits.com/programming/erlisp/ К>Но тут статики не получится, да и на Qi тоже, там же не обязательна типизация.
Разве ? Ну м.б. я ж говорю, надо смотреть что да как.
Я вообще смотрю больше на языки с макросами. Чтобы результат был не сильно ужасным. Но исследование языков очень уж затягивает и отвлекает от идеи
К>Весь вопрос ЧТО сделать К>Т.е. мне вот интересно — возможно ли вообще эрланговскую модель без динамики получить?
А мне вот это тоже интересно Я думаю в принципе можно. Но каким образом, и сколько на это понадобится сил —