كيف تٌقاس سرعة لغات البرمجة ؟


لغة البرمجة تكون أسرع كلما كانت أقرب الى لغة الألة,

أى ان لغة التجميع أسرع من السى, و السى أسرع من البيسك, و هكذا.

كلما كنت أقرب الى الألة تستطيع الوصول الى هدفك مباشرة, دون المرور بالاعتبارات العامة الكثيرة التى وضعها مبرمجى لغة بيسك مثلا للوصول الى نفس الهدف.

طبعا اللغات المترجمة أسرع من تلك المفسرة.

مرحباً بك أخ فادي زمن طويل لم نرى ردودك هنا، يظهر أنك انشغلت

لغة البرمجة تكون أسرع كلما كانت أقرب الى لغة الألة

يوجد موضوع جديد ربما يقوم بتغيير تلك المعادلة وهو اختلاق المعماريات والذي اصبح مؤخراً حقيقة لا فرار منها، هذا يجعل البرنامج الثُنائي بلغة اﻵلة يكون اسرع في معالج واحد فقط أو نوع معالجات واحد، لكن سوف لن يستفيد من ميزات خاصة في معالجات أخرى. لذلك يمكن أن تتفوق الـ JIT (نظرياً) في هذا المجال، حيث تقوم بإنشاء البرنامج الثُنائي المناسب حسب المعالج الموجود في تلك اللحظة. لكن عملياً برامج اﻵلة هي اسرع من برامج جافا أو سي شارب

ماهو رأيك

فى السى فانك تقوم باعادة الترجمة لكل معالج على حده, و استخدام الميزات الخاصة فى المعالج يعتمد على الoptimization و قدرات المترجم, كما ان المبرمج يمكنه كتابة أجزاء خاصة بكل معالج على حدة, ففى السى يمكنك دمج أكواد لغة التجميع مع لغة سى ضمن البرنامج نفسه و استخدام ما يشاء من قدرات المعالج.

على العموم قدرات المعالج الخاصة غالبا يتحكم بها نظام التشغيل و ليس البرنامج نفسه, و أكثر ما يعنينا هنا ادارة الذاكرة و دعم مكتبات نظام التشغيل بشكل جيد, و هو شىء تفشل فيه الجافا.

لقد جربت ان اقوم بكتابة web service على السى++, تعمل بواجهة تشبه الcgi من تصميمى (أى انه فى كل طلب يقوم الweb server بتحميل برنامج كامل و تشغيله و انتظار الرد منه),

و النتيجة كانت مذهلة,

طبعا الdebugging كان صعبا, و المجهود كان اكبر, لكن النتيجة فى النهاية تستحق, الموقع يعمل بسرعة فائقة, و بعدد مستخدمين كبير, و كل هذا على سرفر هو فى حقيقة الامر حاسوب عادى بمواصفات متواضعة مثبت عليه ويندوز سرفر!

قرأت ذات مرة ان برمجة موقع بالسى تمكنك من خدمة عدد العملاء أكثر ب10 مرات على الأقل بنفس العتاد.

فى السى فانك تقوم باعادة الترجمة لكل معالج على حده, و استخدام الميزات الخاصة فى المعالج يعتمد على الoptimization و قدرات المترجم, كما ان المبرمج يمكنه كتابة أجزاء خاصة بكل معالج على حدة, ففى السى يمكنك دمج أكواد لغة التجميع مع لغة سى ضمن البرنامج نفسه و استخدام ما يشاء من قدرات المعالج.

جربت نفس اﻷمر مع Free Pascal لدي برنامج حسابات اقوم بإصدار نُسخ له لبيئة لينكس 64 بت ووندوز 32 بت، في الحقيقة عملية طويلة، واحتاج لتشغيل نسخة وندوز virtual داخل لينكس، وايضاً لدي برنامج آخر مفتوح المصدر أقوم بإصدار نُسخة وندوز 32 بت و 64 بت، ولينكس 64 بت و 32 بت، ثم أطلب من صديق لديه ماكنتوش ومترجم Free pascal ليقوم بإصدار نُسخة ماكنتوش من هذا البرنامج، أحياناً اكسل من انتاج كل هذا الكم من اﻹصدارات.

أما في الجافا فالموضوع سهل جداً، من لينكس أقوم برفع خدمات الويب في كافة أنظمة التشغيل بكل معمارياتها دون أي تغيير.

لدي أيضاً مكتبة لعمل برامج ويب عن طريق free pascal والناتج هو CGI كثير من الناس انتقدوا على أنه برتوكول قديم. لكنه كان سريع جداً

سرعة الـ CGI مقاربة لسرعة PHP وهذه هي نتيجة المقارنة:

اعتقد أنه مع زيادة قدرة المعالجات سوف يقل هذا الفرق.

على العموم قدرات المعالج الخاصة غالبا يتحكم بها نظام التشغيل و ليس البرنامج نفسه

هل يستفيد منها نظام التشغيل لصالحه فقط أم لصالح البرامج

أخشى أن يكون لصالحه فقط ويكون البرامج محدود باﻹمكانات التي تمت ترجمته بها

هناك شيء آخر تتميز به جافا وأدواتها عن لغات البرمجة الطبيعية، وهي سرعة التطوير، وهو موضوع مهم جداً يليه مدراء المشاريع أهمية كبيرة، وربما لا يعيرون أي أهمية لسرعة اﻷداء أو الكفاءة.

إذا تفوقت الجافا ومكتباتها في شيء واحد، وإذا قلنا أنها لا تصلح إلا لشيء واحد فهو خدمات الويب، و ايضاً برمجة الويب

تحياتى لك يا صديقى العزيز,

الحقيقة كنت مشغولا فى الفترة السابقة بالفعل. شاركت فى بضع مواضيع لكن ليس بالكثافة السابقة. دائما ما أستمتع بالنقاش هنا فى المنتدى مع أشخاص مثقفين و لهم نفس اهتماماتى مثلك و مثل الاخوة الاعضاء . تحياتى لك و أسف على الغياب.


برمجة

مجتمع للمبرمجين من جميع المستويات لتبادل المعرفة والخبرات. ناقش لغات البرمجة المختلفة، الحلول البرمجية، والمشاريع.

25.5 ألف متابع