1. برمجة
11

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

  • walid123
  • 2015-11-27T12:38:05+00:00
  • رابط مختصر
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

  • الأفضل
  • الأحدث
  • الأقدم
6
فادى 2015-11-27T21:14:03+00:00 أضف ردا
  • رابط مختصر

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

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

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

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

3
معتز 2015-11-28T08:31:51+00:00 أضف ردا
  • رابط مختصر

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

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

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

ماهو رأيك

4
فادى 2015-11-28T18:49:31+00:00 2015-11-28T18:51:25+00:00 أضف ردا
  • رابط مختصر

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

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

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

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

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

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

1
معتز 2015-11-29T05:43:05+00:00 2015-11-29T05:45:18+00:00 أضف ردا
  • رابط مختصر

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

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

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

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

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

http://code-sd.com/products...

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

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

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

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

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

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

1
فادى 2015-11-28T19:14:53+00:00 أضف ردا
  • رابط مختصر

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

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

0
horizon 2015-11-28T05:15:39+00:00 أضف ردا
  • رابط مختصر

أنظر هذا الأختبار أخي

http://blog.carlesmateo.com...
5
horizon 2015-11-27T15:37:53+00:00 أضف ردا
  • رابط مختصر

السرعة تقاس حسب الوقت المستغرق لتنفيذ خوارزمية معينة ،

ربما تجد Perl تتفوق حتى على C بـRegular Expression ، و لكن في حالات معينة ، حيث أن Perl مخصصة لهكذا عمل.

و Python بإستخدام Pypy قد تكون بسرعة مشابهة لـC في بعض الحالات ،

حتى جافا المعروف عنها أنها بطيئة ، تجد ان نظام إدارة قواعد بيانات Cassandra مبني بواسطة جافا و الذي يتعبر من أسرع انظمة قواعد بيانات NoSQL ،

و أيضاً لا ننسى أن للمطور الدور الأهم في سرعة برامجه و ليس لغة البرمجة.

1
zomorroda 2015-11-27T19:38:24+00:00 أضف ردا
  • رابط مختصر

وأيضاً لا ننسى أن للمطور الدور الأهم في سرعة برامجه و ليس لغة البرمجة.

كيف ذلك؟

3
walid123 2015-11-27T19:42:22+00:00 أضف ردا
  • رابط مختصر

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

هذه ما فهمته انا . ان كنت مخطأ اخبرني :)

2
horizon 2015-11-28T04:49:55+00:00 أضف ردا
  • رابط مختصر

إضافةً الى ما ذكره الأخ @walid123 ،

في لغة سي شارب مثلاً ، يعرف متى يستعمل for و متى يستعمل foreach ، و يعرف متى يستعمل struct و متى يستعمل class و هكذا.

1
فادى 2015-11-27T21:11:09+00:00 أضف ردا
  • رابط مختصر

كيف تكون بيرل اسرع من C فى اى حالة من الحالات اذا كانت perl فى حد ذاتها هى برنامج مكتوب على لغة سى!!

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

1
horizon 2015-11-28T05:20:34+00:00 أضف ردا
  • رابط مختصر

لماذا pypy اسرع من CPython (في بعض الحالات) مع العلم أن الأول مكتوب بالبايثون و الثاني مكتوب بالـC؟

1
فادى 2015-11-28T18:54:45+00:00 أضف ردا
  • رابط مختصر

ممكن طبعا, اذا كان مبرمج CPhyton لم يستخدم اللوغاريتمات المناسبه,

لتقريب الصورة تخيل ان مبرمجا كتب برنامج للبحث عن الrecords فى قاعدة بيانات

الذى كتبه بسى كتب برنامجا يقوم بالبحث فى كل record على حدة,

الأخر الذى يعمل بفيجوال بيسك مثلا و هى لغة بطيئة استخدم الindexing ,

من أسرع؟! اللوغاريتم أولا قبل اللغة. لكن لو كتبنا اللوغاريتم ذاته بعدة لغات سوف تكون السى هى الأسرع.

0
عبدالله 2 2015-11-28T08:53:06+00:00 أضف ردا
  • رابط مختصر
http://blog.carlesmateo.com...

مع أني لا أكاد أصدق أن الجافا هي الأسرع حتى الـ C++ في هذه التجربة أسرع من الـC هذا عجيب !!!

0
معتز 2015-11-28T03:37:20+00:00 أضف ردا
  • رابط مختصر

تمت إعادة كتابة Cassandra بلغة C++ فاصبحت اسرع 10 مرات:

http://www.scylladb.com
1
horizon 2015-11-28T05:19:44+00:00 أضف ردا
  • رابط مختصر

جزاك الله خيراً ، لم أكن أعلم بوجودها

هذه قواعد بيانات متوافقة مع Cassandra في بعض الخصائص كـCQL ، و تم التغيير في المعمارية.

ما قصدته أنه قبل فترة أن Cassandra كانت أسرع بكثير من MongoDB (مكتوبة بالـC++ و Document-Oriented) ، ولكن في اصدار 3 من مونغو اصبحوا بنفس السرعة تقريباً.

ما أقصده هو كله يعتمد على المبرمج ،

راجع ردي

https://io.hsoub.com/go/324...
2
معتز 2015-11-28T07:52:36+00:00 أضف ردا
  • رابط مختصر

اعتقد أن سبب السرعة ليس فقط التحول إلى لغة C++ لكن ربما المكتبات المُستخدمة أو ربما تم تحسين في ألغوريثمات قاعدة البيانات.

1
horizon 2015-11-28T08:09:34+00:00 أضف ردا
  • رابط مختصر

نعم هذا صحيح

3
ahmedsaoud31 2015-11-27T20:51:37+00:00 أضف ردا
  • رابط مختصر

كما في الفيزياء عندما نريد قياس عاملين من العوامل نقوم بتثبيت باقي العوامل المؤثرة على سير العملية.

  • في حالتنا هنا نحتاج قياس زمن التنفيذ بالنسبة للغة المُستخدمة، سنقوم بتثبيت باقي العوامل المؤثرة على سير العملية كنوع العتاد الصلب (ذاكرة-معالج- إلخ ...) بمعنى أخر استخدام نفس الجهاز لكل الإختبارات على اللغات محط الإختبار، تثبيت الخوارزمية المُستخدمة في على كل اللغات.

  • ولاختبار اللغات بشكل دقيق يتم اختبار خورزميات عديدة لأداء وظائف مُختلفة كخوزميات التعامل مع الذاكرة- الضغط على المُعالج - التعامل مع الملفات - الإتصال وإجراء استعلامات على أنواع قواعد بيانات مُعينة وهكذا للخروج بقياس دقيق عن أداء كل لغة في تنفيذ مهمة مُعينه، فلا أظن وجود لغة مُتفردة من ناحية السرعة في جميع النواحي.

0
mujahid 2015-11-29T22:16:37+00:00 أضف ردا
  • رابط مختصر

فلا أظن وجود لغة مُتفردة من ناحية السرعة في جميع النواحي.

كما قال الأخ @فادي فإن لغة البرمجة الأقرب إلى الآلة هي الأسرع.

ولكن غيرها من اللغات (ذات السرعة المنخفضة) تمتاز بالسهولة، والمرونة العاليتين (مثل الجافا وبايثون).

0
ahmedsaoud31 2015-11-30T03:56:14+00:00 أضف ردا
  • رابط مختصر
  • نعم، ومن المعلوم أنه كلما زادت الخطوات للوصول للشكل النهائي لكود الآلة كلما زاد الوقت، ولكن الحديث العام عن اللغات مُرتفعة المستوى، فلن تجد أن أحداً سيقوم بكتابة برنامجه باستخدام 01 أو حتى Assembly إلا في حالات نادرة.

  • كما أن الاساس في الفرق في السرعات يعتمد على الخورزميات المُتبعة في كل لغة لتنفيذ غرض مُعين، فربما لغة أقرب للغة الألة ولكنها تنتهج خوارزمية أبطأ من لغة أُخرى أبعد منها عن لغة الآلة، ولكن فرق أداء الخوارزمية يجعلها تتفوق على اللغة الأقرب من الآلة من حيث سرعة التنفيذ.

0
mujahid 2015-11-30T10:30:35+00:00 أضف ردا
  • رابط مختصر

كما أن الاساس في الفرق في السرعات يعتمد على الخورزميات المُتبعة في كل لغة لتنفيذ غرض مُعين.

هذا صحيح لحد ما، فللمترجم أثره أيضًا، فالمترجمات الضعيفة تنتج برامج بطيئة وذات جودة منخفضة، والمترجم القوي لنفس اللغة تنتج برامج أفضل وأسرع.

2
RCE 2015-11-27T13:09:16+00:00 أضف ردا
  • رابط مختصر

باستعمال دوال معينة مثلا لغة PHP استعمال microtime

شاهد الموضوع التالي

http://www.advphp.com/artic...
1
am.sa 2015-11-27T15:44:06+00:00 أضف ردا
  • رابط مختصر

تكتب نفس الخوارزمية على نفس الجهاز وترى من ينفذها أسرع من اﻷخر

1
bitsnaps 2015-11-29T07:37:49+00:00 2015-11-29T07:41:01+00:00 أضف ردا
  • رابط مختصر

السلام عليكم،

أولا، يجب أن نتّفق على معنى سرعة لغات البرمجة، لأن الغالب أن تتم المقارنة بين سرعة التجميع Compiling بين اللغات، لأن التنفيذ يقوم به نظام التشغيل.

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

أيضا كقاعدة عامة: ما تربحه من جهة قد تخسر لأجله من جهة أخرى. فإذات ربحت زيادة في سرعة المترجم للغة فربما تحصل على استهلاك مفرط في الذاكرة، أو مساحة الملف الناتج. لذلك يقال دائما أن سرعة لغة البرمجة ليست معيارا لتحديد أفضل لغة برمجة.

لكن تبقى الحاجة لمقارنة سرعة الترجة Compiling خاصة في البرامج التي تحتوي على الكثير من المعالجات، أو سرعة التنفيذ للبرامج التي تقوم تنفيذ كم كبير من التعليمات عند الإقلاع مثلا أو غير ذلك.

لمثل ذلك هناك اختبارات مقارنات تقنية Benchmark حيث توضع لغات البرمجة في نفس عوامل العتاد البرنامج، ويراقب آداؤها عند كل مستوى معيّن من عدد الأسطر البرمجية، ينظر:

http://benchmarksgame.aliot...
0
reggadi 2015-11-27T13:10:59+00:00 أضف ردا
  • رابط مختصر

لم افهمك جيدا اخي

لكن تفضل هذا موقع يعطيك قياس سرعة ، جميع مكونات موقعك ، و الموقع بشكل عام

http://tools.pingdom.com/fpt
0
walid123 2015-11-27T13:39:54+00:00 أضف ردا
  • رابط مختصر

ليس فقط في برمجة المواقع ان اتحدث عامة اللغات .

مثلا يقولون ان c اسرع من جافا ....

1
reggadi 2015-11-27T14:32:31+00:00 أضف ردا
  • رابط مختصر
http://nileshgr.com/2012/08...
http://benchmarksgame.aliot...

تفضل قد تجد مرادك في هده المواضيع اذا كنت تجيد الإنجليزية

1
mujahid 2015-11-30T10:44:22+00:00 أضف ردا
  • رابط مختصر

برامج لغة السي أسرع لأنها تترجمة للغة الآلة مباشرة، أما الجافا فهي تترجم للغة وسيطة تعمل على الآلة والهمية للجافا، فالبطء ليس في أصل اللغة، بل في كيفية ترجمة وتنفيذ البرنامج. هذا ما يتعلق بالسي والجافا.

أما اللغات التفسيرية فهي الأبطء على الإطلاق (ما لم تكن مكتبتها القياسية مكتوبة بلغة السي، أو أي لغة سريعة).

والله أعلم

برمجة

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

25.6 ألف متابع

أطلق موقعك الإلكتروني في دقائق

صمم موقعك كاملا بالسحب والإفلات بدون خبرة برمجية، واحجز مكانك على الإنترنت.

أنشئ موقعك الآن

اقرأ أيضًا

  • كيف اتعلم البرمجة
  • بدي اتعلم لغة بايثون
  • كيف تغير البرمجة طريقة تفكيرك؟
  • ماهو مستقبل لغة c++
  • لغة البرمجة الجديدة Mojo

انسخ هذا الرابط:

تنبيه