YARV

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

Ο YARV (Yet another Ruby VM, Άλλη μια εικονική μηχανή για τη Ruby) είναι ένας διερμηνέας κώδικα byte (bytecode) που αναπτύχθηκε για τη γλώσσα προγραμματισμού Ruby από τον Koichi Sasada. Ο στόχος του εγχειρήματος ήταν να μειωθεί σημαντικά ο χρόνος εκτέλεσης των προγραμμάτων σε Ruby.

Επειδή ο YARV έγινε ο επίσημος διερμηνέας της Ruby στην έκδοση της Ruby 1.9, ονομάζεται επίσης KRI (Koichi's Ruby Interpreter).

Απόδοση[Επεξεργασία | επεξεργασία κώδικα]

Δοκιμές από το rubychan.de έδειξαν σημαντικές βελτιώσεις στην απόδοση.[1] Δοκιμές από τον Antonio Cangiano έδειξαν μια κατά μέσο όρο τέσσερις φορές βελτίωση σε σχέση με τον αυθεντικό διερμηνέα.[2] Και οι δύο εκτιμήσεις βασίστηκαν σε κυρίως συνθετικά δοκιμαστικά σενάρια.

Το Ruby on Rails παρατηρήθηκε να τρέχει περίπου κατά 15% γρηγορότερα με τον YARV σε σχέση με τη Ruby 1.8.6.[3] Όμως, ο αρχικός χρόνος που χρειάζεται το πρόγραμμα (startup time) και ο χρόνος που χρειάζεται το ActiveRecord εξακολουθούν να είναι μεγάλοι.

Ιστορία[Επεξεργασία | επεξεργασία κώδικα]

Την 1η Ιανουαρίου 2007, ο YARV ενσωματώθηκε με τον κώδικα στο σύστημα Subversion της Ruby.[4]

Ο δημιουργός της Ruby, Yukihiro Matsumoto, ενσωμάτωσε πλήρως τον YARV στην έκδοση Ruby 1.9.0 που κυκλοφόρησε στις 26 Δεκεμβρίου 2007.[5] Από αυτήν τη στιγμή, ο YARV έγινε ο επίσημος διερμηνέας της Ruby, αντικαθιστώντας αυτόν που είχε αναπτύξει ο Matsumoto.

Δείτε επίσης[Επεξεργασία | επεξεργασία κώδικα]

Αναφορές[Επεξεργασία | επεξεργασία κώδικα]

  1. Benchmarks: Ruby 1.8 and Ruby 1.9 (rubychan.de)
  2. Cangiano, Antonio (2007-03-12). «The Great Ruby Shootout». http://antoniocangiano.com/2007/12/03/the-great-ruby-shootout/. Ανακτήθηκε στις 2008-02-01. 
  3. «Rails on 1.9: first benchmarks, YARV exposed to non-synthetic tests». eigenclass.org. 2007-03-28. http://eigenclass.org/hiki/non-synthetic-benchmarks-for-yarv. Ανακτήθηκε στις 2008-09-13. «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.» 
  4. «The Ruby VM: Episode I». Αρχειοθετήθηκε από το πρωτότυπο στις 2012-05-26. http://archive.is/yCFB.  - Shades of Gray
  5. merge YARV announcement by Koichi Sasada

Εξωτερικοί σύνδεσμοι[Επεξεργασία | επεξεργασία κώδικα]


Στο λήμμα αυτό έχει ενσωματωθεί κείμενο από το λήμμα YARV της Αγγλόγλωσσης Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0. (ιστορικό/συντάκτες).