| Erlang vs. Stackless Python | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Mamut | http://dmitriid.com/ |
| Дата: | 02.08.07 06:42 | |
| Оценка: | 6 (3) +1 | |
| http://muharem.wordpress.com/2007/07/31/erlang-vs-stackless-python-a-first-benchmark/ На основе задачи из кинги Армстронга:
В том случае, когд используется IO, Erlang сильно уступает Питону. Когда IO нет, Питон все равно наступает на пятки Эрлангу. Полное описание, код и графики здесь: http://muharem.wordpress.com/2007/07/31/erlang-vs-stackless-python-a-first-benchmark/ ![]() |
| Re: Erlang vs. Stackless Python | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Gaperton | http://gaperton.livejournal.com |
| Дата: | 02.08.07 14:31 |
Здравствуйте, Mamut, Вы писали:
Ай-ай-ай... Эрланг делает больше проверок, чем питон. По нормальному-то если писать, то должно быть так:
Во вторых, надо убрать io — сейчас все затыкается в него. |
| Re: Erlang vs. Stackless Python | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Gaperton | http://gaperton.livejournal.com |
| Дата: | 02.08.07 14:51 | |
| Оценка: | 29 (4) +1 | |
| Здравствуйте, Mamut, Вы писали: И еще. Замерять время старта рантайма — ой как нехрошо. Не могут кривые пересекаться в середине, как это происходит здесь. На самом деле, если вычесть время старта, этот тест показывает нам, что Эрланг примерно в четверо быстрее при передачах сообщений через длинные цепочки — благодаря более совершенному шедулеру, который гонит сообщения волной, и вдвое быстрее при передаче сообщений на коротких цепочках, благодаря более оптимальной реализации посылки сообщения. Если это называется "наступает на пятки" — то конечно Разница, правда, станет существенно более впечатляющей, когда мы начнем паттерн-матчинг на мэйлбоксе применять. Ну, то есть когда возникнет необходимость более-менее сложный протокол реализовать, а не гонять сообщения по кругу. Вот тут-то самое интересное и начнется. Плюс — прикольно сравнить, как этот код будет работать на кластере машин. У-упс! Как? Stackless Python так не умеет? Ай-ай-ай ![]() |
| Re[2]: Erlang vs. Stackless Python | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | FR | |
| Дата: | 04.08.07 09:20 |
| Здравствуйте, Gaperton, Вы писали: G>Плюс — прикольно сравнить, как этот код будет работать на кластере машин. У-упс! Как? Stackless Python так не умеет? Ай-ай-ай В некторых нишах вполне конкурент. SMP Эрланг тоже очень недавно научился использовать, да и в питоне никто ни мешает место Stackless импользовать самописные потоки на генераторах c использованием нативных потоков OS, да и для кластеров есть решения ( http://pyro.sourceforge.net/ ). Да и устойчивость к падучести легких потоков будет не хуже эрланговской. |
| Re[3]: Erlang vs. Stackless Python | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Cyberax | |
| Дата: | 04.08.07 13:22 |
| FR wrote: > В некторых нишах вполне конкурент. > SMP Эрланг тоже очень недавно научился использовать, да и в питоне никто > ни мешает место Stackless импользовать самописные потоки на генераторах > c использованием нативных потоков OS, да и для кластеров есть решения ( > http://pyro.sourceforge.net/ ). В Python на все потоки — общий GC. В Erlang'е оно, скорее всего, из-за копирования сообщений тормозит. Posted via RSDN NNTP Server 2.1 beta Sapienti sat! | |
| Re[4]: Erlang vs. Stackless Python | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Gaperton | http://gaperton.livejournal.com |
| Дата: | 06.08.07 12:11 |
| Здравствуйте, Cyberax, Вы писали: C>FR wrote: >> В некторых нишах вполне конкурент. >> SMP Эрланг тоже очень недавно научился использовать, да и в питоне никто >> ни мешает место Stackless импользовать самописные потоки на генераторах >> c использованием нативных потоков OS, да и для кластеров есть решения ( >> http://pyro.sourceforge.net/ ). C>В Python на все потоки — общий GC. В Erlang'е оно, скорее всего, из-за C>копирования сообщений тормозит. В Эрланге "оно" вообще-то не тормозит, "оно" в 2-4 раз быстрее, если не замерять файловый ввод-вывод и время старта рантайма. |