Итак, у меня есть несколько вопросов, которые я должен задать, я просматривал Интернет, но надежных ответов было не так уж много. В основном это посты в блогах, которые исключали друг друга, потому что они хвалили разные вещи и имели контрольные показатели для «подтверждения своей точки зрения» (я никогда в жизни не видел столько противоречащих контрольных показателей).
В любом случае, мои вопросы:
- Является ли Rubinius действительно быстрее? Меня очень впечатлила эта явно честная презентация в поддержку Rubinius. а>. Еще меня немного смущает то, что очень много Rubinius написано на самом Ruby, но почему-то он быстрее, чем C-Ruby? Тогда это должна быть чертовски хорошая реализация языка!
- Работает ли EventMachine с Ruinius? Насколько я знаю, EventMachine частично полагается на Fibers (поправьте меня, если я ошибаюсь), которые не были реализованы до версии 1.9. Я знаю, что Rubinius в конечном итоге тоже будет поддерживать 1.9; Я не против немного подождать.
- Работают ли расширения C в Rubinius? Я написал расширение C, которое "сериализует" двоичные сообщения, полученные из потока TCP, в объекты Ruby и наоборот (полагаю, детали не важны, но если это помогает ответить на этот вопрос, я обновлю сообщение). Это может быть много сообщений! Мне удалось написать тот же код на Ruby (правда, через месяц смысла в этом было мало), но он оказался настоящим узким местом в приложении. Итак, мне пришлось использовать C как «решение» моей проблемы. EDIT: я только что вспомнил, что использую C для другой задачи, это метод проверки попадания для массивов. По сути, он просто проверяет, находится ли «точка» внутри многоугольника, в CRuby это было невероятно медленно.
- Если предыдущий ответ был "Нет", есть ли тогда альтернатива для расширений C в Rubinus? Насколько я понимаю, виртуальная машина написана на C++, так что тогда.
Несколько "бонусных" вопросов:
- Сможет ли когда-нибудь C-Ruby (2.0+, YARV) избавиться от GIL? Или хотя бы изменить его, чтобы CRuby поддерживал настоящий параллелизм?
- Что такое mruby? Я вижу, что matz работает над этим, и, судя по описанию, кажется довольно удивительным. Насколько он отличается от CRuby (по производительности)?
Прошу прощения за этот текстовый шторм, который я обрушил на вас! ♥