2010-10-23 3 views
7

Я только что увидел, что есть компилятор Ruby to Parrot под названием Cardinal, который может создавать код для запуска на Parrot, который представляет собой виртуальную машину, которая может запускать байт-код. Как производительность Ruby или любого языка компилируется и запускается там, потому что, например, Ruby, вероятно, не имеет предварительно скомпилированного байтового кода. Может ли он работать быстрее на Parrot? Возможно, Python будет лучше работать, поскольку он есть .pyc.Будет ли Ruby или другой язык работать быстрее на Parrot?

+1

JRuby принимает такой же подход, скомпилированный байт-код Ruby to Java. – Thilo

ответ

4

Parrot развитие еще не сосредоточилось на оптимизации. Дорожная карта всегда указывала это на версии 3 или 4 (Parrot в настоящее время находится в версии 2.9).

Большая ветвь рефакторинга, которая включает в себя рвут на JIT и заменить его новым в настоящее время происходит (рефы: Lorito & JITRewrite).

Плоды этого должны начинаться как часть Parrot 3.0, которые, я думаю, должны появиться следующей весной.


Update

Вероятный roadmap был размещен Разработчиком Parrot в его blog. Вот краткое изложение того, что он думает, что в ближайшие 3 года, может быть:

  • 3,0 - Новый Garbage Collector
  • 3,3 - Lorito прототип
  • 4.0 - Новый объект метамодель
  • 5,0 - Новый JIT
  • 6,0 - Новая система параллелизм

/I3az/

1

Редактировать: Я смотрел более старые результаты, когда newer ones are available. По сравнению с самыми современными эталонами, которые все еще довольно стары, попугай бьет ваниль vm на нескольких тестах, но на других медленнее. Несколько тестов, которые он даже не может выполнить.

yarv - это скорость вращения короля для рубинового исполнения.

+1

"Новые" результаты с 2007 года? : -/ – 2010-10-23 20:52:16

+1

Я признаю, что он оставляет место для улучшения. – SingleNegationElimination