هل لوجيت أسرع حقًا من كل اللغات الديناميكية الأخرى؟ [مغلق

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

  •  24-09-2019
  •  | 
  •  

سؤال

وفقًا للعبة القياسية لغة الكمبيوتر ، تنفيذ Luajit يبدو أنه يتغلب على كل لغة ديناميكية أخرى (V8 ، Tracemonkey ، PLT Scheme ، Erlang Hipe) بواسطة أمر من حجم.

أعلم أن هذه المعايير ليست تمثيلية (كما يقولون: "ما هي تطبيقات لغة البرمجة التي لديها أسرع البرامج القياسية؟") ، لكن هذا لا يزال مثيرًا للإعجاب حقًا.

في الممارسة العملية ، هل هو الحال حقا؟ شخص ما اختبر هذا تنفيذ لوا؟

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

المحلول

هناك مناقشة جيدة في Lambda في نهاية المطاف. لوجيت جيد جدا.

لقد أبلغ الكثير من الناس عن سرعات رائعة لوا ل (القائمة البريدية لوا). تعتبر الدراجات الأكثر إثارة للإعجاب لرمز لوا النقي. لا يكون برنامج التحويل البرمجي التتبع فعالاً عندما يكون هناك الكثير من المكالمات لوظائف C في وحدات المكتبة القابلة للتحميل.

نصائح أخرى

في حالتي (تطوير النموذج الأولي للعبة) ، لاحظت عدم تحسين الأداء على الإطلاق. أستخدم LUA للتضمين ، لذلك هناك الكثير من المكالمات لوظائف مكتبة C ++. على الرغم من أن الحلقة الرئيسية هي في نص LUA ويتم تنفيذ كل المنطق المهم في LUA ، تم تحديد الأداء العام من خلال تقديم محركات الفيزياء والمحركات التي يتم تنفيذها في C ++. LUA الأصلي سريع بالفعل بما يكفي لمثل هذه التطبيقات.

قمت بتجربة الدرس المستفاد هنا: http://www.sampalib.org/luajit2.0_tunning.html بعض البيانات لم تعد صالحة بعد الآن (maxmcode = 1024 كافية) ، لكن Luajit يجلب تحسنًا قويًا على 600 سطر من الكود النصي لوا (لا يوجد مكالمة C للضغط على الكمال ...) هذا ليس تطبيقًا واسع النطاق ولا حالة الاستخدام المدمجة ولكن أكثر بكثير من المعايير.

يعتمد أداء JIT على شيئين: أداء لغة البرمجة النصية الأصلية ، وأداء المترجم.

برنامج التحويل البرمجي هو تقنية ناضجة للغاية ومعظم برنامج التحويل البرمجي JIT لديه أداء مماثل. ومع ذلك ، فإن لوا نفسها ، أي لوا-بدون جيت ، ربما تكون واحدة من أسرع لغة البرمجة النصية.

لوا أسرع من جافا دون جيت. لوا أسرع من جافا سكريبت دون جيت. لوا أسرع من اللغات الأكثر ترابطًا-دون جيت.

لذا،

Lua-Jit أسرع من Java-With-Jit (The Sun Java) ، Lua-Jit أسرع من V8 (JavaScript-with-Jit) ، إلخ ، ...

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