YARV

Поделись знанием:
Перейти к: навигация, поиск

YARV (Yet Another Ruby VM) — байткод-интерпретатор, разработанный для Ruby Коити Сасада. Целью проекта является значительное уменьшение времени выполнения программ на Ruby.

YARV стал основным интерпретатором в версии Ruby 1.9, так же, его называют KRI (Koichi’s Ruby Interpreter), по аналогии с MRI (Matz’s Ruby Interpreter).

Результаты бенчмарков сайта rubychan.de показали что скорость работы сильно возросла[1] Бенчмарки Antonio Cangiano показали, что скорость возросла в среднем в четыре раза[2]. Оба бенчмарка состояли, в основном, из синтетических тестов.

Ruby on Rails работает с YARV быстрее примерно на 15 % чем с Ruby 1.8.6[3]. Однако, время запуска и работа с ActiveRecord всё ещё медленны.





История

Первого января 2007 года, ветвь разработки YARV произвела слияние с основной веткой разработки Ruby на Subversion репозитории[4].

Создатель Ruby Юкихиро Мацумото полностью встроил YARV в Ruby версии 1.9.0, релиз которой произошёл 26 декабря 2007 года[5]. С того времени YARV стал официальным интерпретатором Ruby, заменив старый, разработанный Мацумото.

См. также

Напишите отзыв о статье "YARV"

Ссылки

  • [www.atdot.net/yarv/ YARV home page]
  • [blog.gmane.org/gmane.comp.lang.ruby.yarv.devel YARV список рассылки]
  • [wiki.rubygarden.org/Ruby/page/show/Rite статья о целях для Ruby 2.0 VM](недоступная ссылка — историякопия)
  • [redhanded.hobix.com/cult/yarvMergedMatz.html статья о интеграции YARV в Ruby 2.0]
  • [www.atdot.net/yarv/rc2006_sasada_yarv_on_rails.pdf презентация Koichi Sasada на конференции RubyConf’2006]
  • [www.antoniocangiano.com/articles/2007/02/19/ruby-implementations-shootout-ruby-vs-yarv-vs-jruby-vs-gardens-point-ruby-net-vs-rubinius-vs-cardinal «разборки» Ruby: YARV в сравнении с другими Ruby VMs]
  • [shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all&lang=yarv&lang2=ruby YARV в The Computer Language Benchmarks Game]

Примечания

  1. [www.rubychan.de/share/yarv_speedups.html Benchmarks: Ruby 1.8 and Ruby 1.9] (rubychan.de)
  2. Cangiano, Antonio [antoniocangiano.com/2007/12/03/the-great-ruby-shootout/ The Great Ruby Shootout] (12 марта 2007). Проверено 1 февраля 2008. [www.webcitation.org/65etwmYdr Архивировано из первоисточника 23 февраля 2012].
  3. [eigenclass.org/hiki/non-synthetic-benchmarks-for-yarv Rails on 1.9: first benchmarks, YARV exposed to non-synthetic tests]. eigenclass.org (28 марта 2007). — «When benchmarking basic requests with a minimalistic schema (only one int column), even though YARV serviced requests 15% faster, it took much longer to load the environment (50% slower). This comes as no surprise since plain old (evil) eval is slower in YARV (...)In fact, the mere fact of requiring active_record (and indirectly ActiveSupport) causes a sharp decrease in performance.»  Проверено 13 сентября 2008.
  4. [blog.grayproductions.net/articles/the_ruby_vm_episode_i The Ruby VM: Episode I] — Shades of Gray
  5. [blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/284720 merge YARV] announcement by Koichi Sasada

Отрывок, характеризующий YARV

Войска бежали такой густой толпой, что, раз попавши в середину толпы, трудно было из нее выбраться. Кто кричал: «Пошел! что замешкался?» Кто тут же, оборачиваясь, стрелял в воздух; кто бил лошадь, на которой ехал сам Кутузов. С величайшим усилием выбравшись из потока толпы влево, Кутузов со свитой, уменьшенной более чем вдвое, поехал на звуки близких орудийных выстрелов. Выбравшись из толпы бегущих, князь Андрей, стараясь не отставать от Кутузова, увидал на спуске горы, в дыму, еще стрелявшую русскую батарею и подбегающих к ней французов. Повыше стояла русская пехота, не двигаясь ни вперед на помощь батарее, ни назад по одному направлению с бегущими. Генерал верхом отделился от этой пехоты и подъехал к Кутузову. Из свиты Кутузова осталось только четыре человека. Все были бледны и молча переглядывались.
– Остановите этих мерзавцев! – задыхаясь, проговорил Кутузов полковому командиру, указывая на бегущих; но в то же мгновение, как будто в наказание за эти слова, как рой птичек, со свистом пролетели пули по полку и свите Кутузова.
Французы атаковали батарею и, увидав Кутузова, выстрелили по нем. С этим залпом полковой командир схватился за ногу; упало несколько солдат, и подпрапорщик, стоявший с знаменем, выпустил его из рук; знамя зашаталось и упало, задержавшись на ружьях соседних солдат.
Солдаты без команды стали стрелять.
– Ооох! – с выражением отчаяния промычал Кутузов и оглянулся. – Болконский, – прошептал он дрожащим от сознания своего старческого бессилия голосом. – Болконский, – прошептал он, указывая на расстроенный батальон и на неприятеля, – что ж это?
Но прежде чем он договорил эти слова, князь Андрей, чувствуя слезы стыда и злобы, подступавшие ему к горлу, уже соскакивал с лошади и бежал к знамени.
– Ребята, вперед! – крикнул он детски пронзительно.
«Вот оно!» думал князь Андрей, схватив древко знамени и с наслаждением слыша свист пуль, очевидно, направленных именно против него. Несколько солдат упало.
– Ура! – закричал князь Андрей, едва удерживая в руках тяжелое знамя, и побежал вперед с несомненной уверенностью, что весь батальон побежит за ним.
Действительно, он пробежал один только несколько шагов. Тронулся один, другой солдат, и весь батальон с криком «ура!» побежал вперед и обогнал его. Унтер офицер батальона, подбежав, взял колебавшееся от тяжести в руках князя Андрея знамя, но тотчас же был убит. Князь Андрей опять схватил знамя и, волоча его за древко, бежал с батальоном. Впереди себя он видел наших артиллеристов, из которых одни дрались, другие бросали пушки и бежали к нему навстречу; он видел и французских пехотных солдат, которые хватали артиллерийских лошадей и поворачивали пушки. Князь Андрей с батальоном уже был в 20 ти шагах от орудий. Он слышал над собою неперестававший свист пуль, и беспрестанно справа и слева от него охали и падали солдаты. Но он не смотрел на них; он вглядывался только в то, что происходило впереди его – на батарее. Он ясно видел уже одну фигуру рыжего артиллериста с сбитым на бок кивером, тянущего с одной стороны банник, тогда как французский солдат тянул банник к себе за другую сторону. Князь Андрей видел уже ясно растерянное и вместе озлобленное выражение лиц этих двух людей, видимо, не понимавших того, что они делали.