15

ما شرحه إسلام عام و شخصيا أجد رده عام :) فأحببت الرد بشئ من التفصيل.

وجه المقارنة

http://d.pr/i/QuaL

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

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

القائمة الثانية Scala معناتها انك اخترت لغة Scala كلغة رئيسية للمقارنة، و القائمة الثانية PHP تعني اختيارك لغة PHP لمقارنة لغة Scala بها

القائمة الأخيرة x64 quad core تهتم ببنية الجهاز. اخترت معالج Quad core و نظام تشغيل يعمل بـ 64 بت.

المقارنة

http://d.pr/i/sUdK

الرسمة في أعلى الصورة ما هي إلا اختصار للجدول في أسفل الصورة. تذكر، اخترنا لغة Scala لغة رئيسية للمقارنة. في الرسمة، توجد 3 أنواع من المقارنات. و كل مقارنة لها شكل عمود محدد.

  • اللون الرمادي السميك تقارن الوقت،

  • الأعمدة النحيفة تقارن استخدام الذاكرة،

  • و الأعمدة المفرّغة تقارن عدد سطور البرنامج.

تقرأ الرسمة اعتمادا على اتجاه الأعمدة بالنسبة للخط منتصف الرسمة. إذا العمود للأسفل تقول "أسرع" إذا للأعلى تقول "أبطأ". بما إن اللغة الأساسية Scalaـ فتقرأ الرسمة كالتالي: الاختبار الأول سرعة تنفيذه في Scala أسرع من PHP بسنبة تقريبا 1/52 (تقريبا مكان وقوف العمود).

أو لو أحببت، الرسمة لا توضّح الأرقام بالتفصيل أو نوع الاختبار، فتوجه للجدول. الجدول مقسم إلى 4 عواميد.

  • العمود الأول يمثل نوع الاختبار.

  • الثاني عبارة عن سرعة التنفيذ،

  • الثالث كمية الذاكرة المستخدمة

  • و الرابع لحجم الكود.

مثلا:

  • اختبار fannkuch-redux، استغرقت Scala 1/52 أقل من PHP.

  • و في مثلا regex-dna، استغرقت Scala نصف الوقت للتنفيذ لكن استغلت 4 أضعاف الذاكرة بكمية تقريبا مقاربة لنفس حجم الكود.

المقارنة التفصيلية

الجدول الأخير يفصل بالتحديد عوامل الاختبار بالأرقام: http://d.pr/i/Ogzl

  • العمود الأول يوضح نوع الاختبار و تقييم كل لغة. العمود الأول مقسّم إلى 3 أقسام: اللون الرمادي يوضح نوع الاختبار و أسفله صفين يمثلان لغات البرمجة التي حددتها للمقارنة، في هذه الحالة Scala و PHP

  • العمود الثاني و الثالث يمثلان الوقت الذي استغرقه البرنامج للتنفيذ و الوقت اللازم لبدئه بالثواني.

  • العمود الرابع لكمية الذاكرة المستخدمة بالكيلوبايت

  • العمود الخامس لحجم الكود بعدد السطور

  • السادس يوضح النسبة الشاغرة من برنامج لكل نواة. لا تنسى في اختبارك اخترت Qaud Core، أي 4 أنوية. كل نسبة توضع النسبة التي يشغلها برنامجك لكل نواة. إذا كانت 3 ارقام من أصل 4 عبارة عن أصفار، معناها البرنامج صُمم بطريقة لكي يشغل فقط نواة واحدة.

مثال: http://d.pr/i/c84T

  • الاختبار: binary tree

  • الوقت: Scala استغرفت تقريبا %20 أقل من PHP

  • الذاكرة: Scala احتاجت تقريبا 476 ميغابايت أما PHP احتاجت 1025 ميغابايت

  • حجم الكود: Scala تقريبا 490 سطر و PHP تقريبا 470 سطر

  • الأنوية: Scala استفادت من كل الأنوية. استغلت 26% من النواة الآولى، 15% من النواة الثانية و الثالثة، و 88% من الرابعة. أما PHP فقط 100% من نواة واحدة فقط.

13

روح ياشيخ ربنا مايوقعك في bug :)

شكراً جزيلاً على الرد الراائع أفادني بالفعل :)

+∞

12

إذا كان سؤالك عن النتائج للمعطيات التي وضعتها تحديدا فإن السكالا تمضي وقتا للاختبار N-bodies المحدد مع معالج x64 رباعي النواة ذاكرة اقل من PHP بمقدار 1/30 اي ان لو ان برنامج الـ PHP امضى 30 ثانية لتنفيذ الاختبار فبرنامج السكالا يمضي ما يقارب 1 ثانية لتنفيذه

14

تصحيح : إذا كان سؤالك عن النتائج للمعطيات التي وضعتها تحديدا فإن السكالا تمضي وقتا للاختبار N-bodies المحدد مع معالج x64 رباعي النواة (ذكرت ذاكرة بالخطء في الرد السابق) اقل من PHP بمقدار 1/30 اي ان لو ان برنامج الـ PHP امضى 30 ثانية لتنفيذ الاختبار فبرنامج السكالا يمضي ما يقارب 1 ثانية لتنفيذه

شكراً جزيلاً على الرد :)


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

16.8 ألف متابع