आप देखना चाहते हैं कि विभिन्न जावास्क्रिप्ट इंजन टिके रहते-ब्राउज़र में, सफारी स्थापित चाहते हैं लार्स बक के साथ एक साक्षात्कार के साथ Channel9 पर पोस्ट किया जाता है 4 (हाँ यह अब भी विंडोज पर चलता है!), Chrome में V8, Firefox 3.5 और IE 8 (यदि आप खिड़कियों पर कर रहे हैं) और बेंचमार्क चलाएँ:
http://www2.webkit.org/perf/sunspider-0.9/sunspider.html
मेरा मानना है कि के रूप में नुकीले ऊपर, कहा नया फ़ायरफ़ॉक्स 3.5 TraceMonkey का उपयोग करता है जो कुछ एफ का उपयोग करके फ्लाई पर इंटरमीडिट कोड को संकलित करता है जेआईटी का ओआरएम तो यह कुछ हद तक अनुकूल रूप से वी 8 की तुलना करनी चाहिए। कम से कम यह V8 की तुलना में 10x धीमी नहीं होगी जैसे फ़ायरफ़ॉक्स 3 स्पाइडरमोन्की (जेआईटी के बिना) था।
मेरे लिए ... सफारी 4.0.3 फ़ायरफ़ॉक्स में Tracemonky से 2.5x तेज था Win XP पर 3.5.3। आईई 8 बहुत धीमी थी। मेरे पास इस समय क्रोम स्थापित नहीं है।
जावा बाइटकोड में संकलन राइनो के बारे में नहीं पता। यदि यह अभी भी जावास्क्रिप्ट की गतिशील विशेषताओं की व्याख्या कर रहा है जैसे कि रनटाइम पर ऑब्जेक्ट्स ऑब्जेक्ट्स में ऑब्जेक्ट्स जोड़ने में सक्षम होना (उदाहरण के लिए obj.someNewAttribute = "someValue" जिसे जावास्क्रिप्ट में अनुमति है) ...मुझे इतना यकीन नहीं है कि यह पूरी तरह से बाइटकोड में "संकलित" है, और जब भी आपका जावास्क्रिप्ट चलता है तो आपको जावास्क्रिप्ट स्रोत कोड टेक्स्ट से संकलित करने की आवश्यकता के अलावा आपको कोई बेहतर प्रदर्शन नहीं मिल सकता है। याद रखें कि जावास्क्रिप्ट बहुत गतिशील सिंटैक्स की अनुमति देता है जैसे eval ("x = 10; y = 20; z = x * y"); जिसका अर्थ है कि आप कोड के तारों का निर्माण कर सकते हैं जो रनटाइम पर संकलित हो जाते हैं। यही कारण है कि मुझे लगता है कि यदि आप JVM बाइटकोड को संकलित करते हैं तो भी राइनो मिश्रित-मोड को संकलित/संकलित किया जाएगा।
जेवीएम अभी भी एक दुभाषिया है, यद्यपि जेआईटी समर्थन के साथ बहुत अच्छा है। तो मुझे राइनो-ऑन-जेवीएम के बारे में 2 दुभाषिया परतों (दुभाषिया-पर-दुभाषिया) या दुभाषिया^2 के बारे में सोचना पसंद है। जबकि आपके अधिकांश जावास्क्रिप्ट इंजन सी में लिखे गए हैं, और इस तरह दुभाषिया^1 की तरह अधिक प्रदर्शन करना चाहिए। प्रत्येक दुभाषिया परत सी या सी ++ (उदाहरण के लिए रेफ पर्ल या पायथन या रूबी) की तुलना में 5-10x प्रदर्शन अवक्रमण जोड़ सकती है, लेकिन जेआईटी के साथ प्रदर्शन हिट 2-4x के क्रम में बहुत कम हो सकती है। और जेवीएम में सबसे मजबूत & परिपक्व जेआईटी इंजनों में से एक है।
तो आपका माइलेज निश्चित रूप से अलग-अलग होगा और यदि आप अपने इच्छित हार्डवेयर & ओएस पर अपने इच्छित एप्लिकेशन के लिए वास्तविक उत्तर चाहते हैं तो आपको शायद कुछ गंभीर बेंचमार्क करने से लाभ होगा।
राइनो बहुत धीमी गति से धीमा नहीं हो सकता है, क्योंकि मुझे पता है कि बहुत से लोग इसका उपयोग कर रहे हैं। मुझे लगता है कि यह मुख्य अपील इसकी गति नहीं है, लेकिन तथ्य यह है कि जावा-पुस्तकालयों में हुक करने के लिए आसान-कोड/हल्के वजन/एम्बेड करने योग्य/दुभाषिया है, जो इसे आपके सॉफ़्टवेयर प्रोजेक्ट की स्क्रिप्टिंग/कॉन्फ़िगरेशन/एक्स्टेंसिबिलिटी के लिए सही बनाता है। UltraEdit जैसे कुछ टेक्स्ट एडिटर्स जावास्क्रिप्ट को एक वैकल्पिक मैक्रो स्क्रिप्टिंग इंजन के रूप में एम्बेड कर रहे हैं। लगता है कि प्रत्येक प्रोग्रामर जावास्क्रिप्ट के माध्यम से आसानी से ठोकर खा सकता है, इसलिए इसे भी चुनना आसान है।
राइनो का एक लाभ यह है कि यह जेवीएम रनों पर कहीं भी कहीं भी चलता है। मेरे अनुभव में, कमांड लाइन से चलने वाले & को बनाने के लिए स्टैंड-अलोन ट्रेसेमोन्की या स्पाइडरमोन्की प्राप्त करने का प्रयास करना विंडोज़ जैसे सिस्टम पर थोड़ा दर्दनाक हो सकता है। और अपने आवेदन में एम्बेडिंग और भी अधिक समय ले सकता है। लेकिन एक एम्बेड करने योग्य भाषा रखने का भुगतान एक बड़ी परियोजना के लिए इसके लायक होगा, जैसा कि "आप अपना खुद का रोल करें" मिनी स्क्रिप्टिंग समाधान होने की तुलना में यदि आप ऐसा करना चाहते हैं।
राइनो के साथ स्क्रिप्टिंग वास्तव में आसान है यदि आपके पास जावा और राइनो जार है, तो आप बस अपना जावास्क्रिप्ट लिखें और इसे कमांड लाइन से चलाएं। मैं इसे सरल कार्यों के लिए हर समय उपयोग करता हूं।
राइनो जावा बाइट कोड को संकलित कर सकता है। https://developer.mozilla.org/en/Rhino_JavaScript_Compiler – Thilo