لغة البرمجة النصية إلى لغة مترجمة أم لغة مترجمة خالصة، أيهما أسرع؟[مغلق]

StackOverflow https://stackoverflow.com//questions/23044498

سؤال

لقد قمت مؤخرًا بترميز تطبيق في jruby وإنشاء ملف .jar منه ونشره في Tomcat.لقد قرأت أيضًا مقالًا عن jruby يقول "Jruby- قابلية التوسع في جافا وسهولة روبي".

أريد هنا أن أعرف هل يعطي الترميز مثل هذا في jruby نفس قابلية التوسع والأداء مثل الترميز المباشر في Java؟

تمامًا مثل هذا، فإن استخدام امتداد روبي لتشغيل كود c في روبي يعطي نفس الأداء مثل الترميز المباشر في c.

شكرًا

هل كانت مفيدة؟

المحلول

(تنصل:قد لا تكون هذه إجابة كاملة ولكنها كانت طويلة جدًا للتعليق)

على الرغم من أنني لا أملك أي خبرة تقريبًا في تنفيذ JRuby على وجه الخصوص، إلا أن اللغات الديناميكية المطبقة على JVM لها حدودها من حيث السرعة التي يمكنك الحصول عليها مقارنة بما ستحصل عليه إذا قمت بالبرمجة مباشرة في Java.

مما أفهمه، يأتي هذا من تطبيقات لغة العميل للمقايضات (جي روبي, كلوجر, جيثون, ، وما إلى ذلك) يجب عليهم القيام بها من أجل "محاكاة" أعمالهم الداخلية على النظام الأساسي المضيف (في هذه الحالة JVM).ربما في السيناريوهات الأكثر شيوعًا، لا يكون اختلاف الأداء بهذا السوء منذ بدء تحسينات HotSpot الخاصة بـ JVM، ولكن عندما يتعلق الأمر بالحصول على أداء تعليمات برمجية يشبه Java، فقد تحتاج إلى التعمق في تفاصيل تنفيذ اللغة لتجاوزها بعض حدودها.

في حالة روبي ملحقات في ج, ، ما تقوم بتنفيذه بالفعل هو الكود الأصلي (لغة الآلة) الذي تم ترميزه في الأصل ج, ، ولكن يمكنك الاتصال به من رمز روبي الخاص بك.عند الجري جي روبي الكود، اللغة التي تبرمج بها هي روبي, ، والتي يجب تجميعها جافا bytecode، الذي يعمل على JVM, ، والذي يترجم ذلك إلى عمليات في نظام التشغيل الأصلي.شيء مماثل ل روبي / سي سيكون في هذه الحالة جي روبي/جافا, ، من شأنه أن يدعو البعض جافا الكود الذي تمت كتابته في الأصل جافا منك جي روبي برنامج.

يحرر

هذا مناقشة يذكر بعض النقاط التي أدرجتها أعلاه وشرحًا أكثر تفصيلاً لبعض النقاط الأخرى المثيرة للاهتمام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top