إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

من الأسرع بايثون أم باقي لغات البرمج ؟!

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • محمد نجم
    رد
    المشاركة الأصلية بواسطة mohamedyosry مشاهدة المشاركة
    البايثون ناجحة كلغة اسكربتنج بشكل عام
    فمثلا اذا كتب مثلا scene.render فهل هذا سيوثر على الاداء ؟ وظيفة البايثون الوحيدة انة سيرسل للمحرك المبرمج بالسى/سى++ طلب تصيير للمشهد .
    من wiki
    ]

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

    اترك تعليق:


  • mohamedyosry
    رد
    البايثون ناجحة كلغة اسكربتنج بشكل عام
    فمثلا اذا كتب مثلا scene.render فهل هذا سيوثر على الاداء ؟ وظيفة البايثون الوحيدة انة سيرسل للمحرك المبرمج بالسى/سى++ طلب تصيير للمشهد .
    من wiki
    A scripting language, script language or extension language is a programming language that allows control of one or more software applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the end-user.[1
    ]

    فاذا كتبت مزيد من ال implementation الذى تريدة بالبايثون فهذة موازنتك انت فاذا اردت تسريعة امامك اعادة كتابتة بالسى او احد اللغات السريعة وتكاملة مع كود البايثون . ولكن فى اغلب الاوقات لا تكون السرعة تصنع فارق واقعى .
    غير ان الكثير من الimplementation صممت بالسى وبطرق تهدف للسرعة .

    اترك تعليق:


  • محمد نجم
    رد
    المشاركة الأصلية بواسطة محمد نجم مشاهدة المشاركة
    بتكليف من عمدة اللينوكساوية المصريين ::
    يا شباب أشاهده الآن مزحه كبيرة
    القوا نظرة علي الإخبارات القياسية الموثوقة من دبيان!:
    http://shootout.alioth.debian.org/u3...pypy&lang2=gpp

    http://shootout.alioth.debian.org/u3...thon&lang2=gpp


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

    راجع المقارنة التي تحتوي " السرعة و استهلاك الذاكرة وكمية المكتوب. ستجد أن بايثون وصلت إلى ١\٨٥ من سرعة السي++
    هذا جيد حقاً لكن إذا قارنتها بالسي ستجد أنها صارت ١\١١٧ وهذا أداء سيء جداً للبايثون!
    ويضيف قائلاً ايضاً::
    بالطبع بايثون هي احد اسرع اللغات التفسيرية أنا لم اقل أنها بطيئة لكن المقارنة بال سي و السي ++ مقارنة فاسدة
    هذه مقارنة بينها وبين روبي مثلاً توضح تفوق بايثون علي روبي بشكل ملحوظ http://shootout.alioth.debian.org/u3...ypy&lang2=ruby

    لكن هناك شئ اخر هنا اذا اردت البحث عن لغة تفسيرية اسرع من بايثون"لكنها ليست اسهل بالطبع"
    فهناك لوا Lua
    لوا تحوي مفسر عادي ومفسر مسرع
    مثل بايثون cpython و pypy

    http://shootout.alioth.debian.org/u3...y&lang2=luajit
    http://shootout.alioth.debian.org/u3...thon&lang2=lua
    تتفوق لوا علي بايثون بشكل ملحوظ جداً!


    ما اعرفه ان اللغات ترتب علي حسب السرعة
    لغات مصرفة , لغات تعتمد علي اله افتراضية ، لغات تفسيرية
    لم اري في حياتي لغة مصرفة تهزمها الجافا مثلاً
    ولم اري لغة علي اله افتراضيه تهزمها لغة تفسيرية
    بالبطع لدينا لوا حالة شاذة : تفوقت علي جافا في عدة اختبارات
    http://shootout.alioth.debian.org/u3...jit&lang2=java

    اترك تعليق:


  • محمد نجم
    رد
    بتكليف من عمدة اللينوكساوية المصريين ::
    يا شباب أشاهده الآن مزحه كبيرة
    القوا نظرة علي الإخبارات القياسية الموثوقة من دبيان!:
    http://shootout.alioth.debian.org/u3...pypy&lang2=gpp

    http://shootout.alioth.debian.org/u3...thon&lang2=gpp


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

    راجع المقارنة التي تحتوي " السرعة و استهلاك الذاكرة وكمية المكتوب. ستجد أن بايثون وصلت إلى ١\٨٥ من سرعة السي++
    هذا جيد حقاً لكن إذا قارنتها بالسي ستجد أنها صارت ١\١١٧ وهذا أداء سيء جداً للبايثون!

    اترك تعليق:


  • remstereo
    رد
    المشاركة الأصلية بواسطة sasa1 مشاهدة المشاركة
    الغايه من كتابة الموضوع ليس تحدي للغات البرمجه من ناحية السرعه

    ولكن لا حاجة لتغيير البايثون من أجل السرعه ما دام هنالك طرق تؤدي الغرض

    بالتأكيد هنالك الأداء الإفضل لسي وسي بلس بلس

    لكن مع مواصفات الأجهزه العاليه أصبح الاداء آخر ما يؤرق المبرمج
    كلام سليم فلا احد يذايد على السى فى السرعة وكذلك لا احد يذايد على البايثون فى السهولة

    اترك تعليق:


  • سلطان العنزي
    رد
    الغايه من كتابة الموضوع ليس تحدي للغات البرمجه من ناحية السرعه

    ولكن لا حاجة لتغيير البايثون من أجل السرعه ما دام هنالك طرق تؤدي الغرض

    بالتأكيد هنالك الأداء الإفضل لسي وسي بلس بلس

    لكن مع مواصفات الأجهزه العاليه أصبح الاداء آخر ما يؤرق المبرمج

    اترك تعليق:


  • محمد أبوالنور
    رد
    السلام عليكم
    مكتبة psyco ما هي إلا وسيلة لتسريع كود البايثون عن طريق زيادة مساحة الذاكرة المستخدمة:
    Think of Psyco as a kind of just-in-time (JIT) compiler, a little bit like what exists for other languages, that emit machine code on the fly instead of interpreting your Python program step by step. The difference with the traditional approach to JIT compilers is that Psyco writes several version of the same blocks (a block is a bit of a function), which are optimized by being specialized to some kinds of variables (a "kind" can mean a type, but it is more general). The result is that your unmodified Python programs run faster.
    http://psyco.sourceforge.net/introduction.html

    ويوجد ايضا وسيلة لتسريع كود الC/C++ عن طريق ال optimizer فيمكن للمصنف استخدام مساحة اكبر لإنتاج ملف تنفيذي أسرع
    انظر هنا http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
    بالتوفيق
    http://en.wikipedia.org/wiki/Just-in-time_compilation

    اترك تعليق:


  • boussouira
    رد
    جيد، هل ستكون نسخة assembly اسرع؟
    التعديل الأخير تم بواسطة boussouira; الساعة 11-07-2010, 12:44 AM.

    اترك تعليق:


  • bouhssini
    رد
    السلام عليكم ورحمة الله

    مع احترامي للأخ sasa1 والأخ أمين روخ , الكلام الذي ذكرتوه غير صحيح

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

    أما عن تجربتي الشخصية فقد مررت على موضوع يتناول كود يبحث عن حل معين عن طريق معادلة فأخذت هذا الكود وجربته بنفسي على جهازي
    اللغات لي جربت عليها هي php و VB6 و C# و C و C++ وأيضا لغة Gambas2
    فكانت النتيجة أن C و C++كانوا الاسرع من بين اللغات حيث يجدون الحل في أقل من ثانية وكانوا متقاربين وكانت المقارنة في نظام لينكس
    أما VB6 كان يجد لي النتيجة في 32 ثانية وأنا شغال من خلال الكود لكن لما صنفته يعني شغلته من ملف exe كانت النتيجة 8 ثواني هذا بالطبع في نظام XP
    أما C# و VB.net كانوا متقاربين وجدوا الحل في 8 ثواني
    لكن لي صدمني هو لغة Gambas2 وجدت لي الحل في 130 ثانية
    أما php فكان أسرع من C# نفسها وجد لي الحل في 4 ثواني

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

    اترك تعليق:


  • أمين روخ
    رد
    مفسر بايثون PyPy تغلب على المفسر المكتوب بسي من حيث السرعة

    اترك تعليق:


  • من الأسرع بايثون أم باقي لغات البرمج ؟!

    في موضوع حساس طرحه أخونا Mohammed Berdai في مدونته

    مقارنة بين أداء بايثون و لغات البرمجة الأخرى



    ذكر فيه سرعة تنفيذ الكود بين أشهر لغات البرمجه

    فكان أداء البايثون غير مرضي أو حتى مخزي مقارنه بباقي لغاة البرمجه

    تم تطبيق كود مشابه للكود الذي تم تطبيقه في البايثون بعدة لغات برمجه


    سرعة تنفيذ الكود

    بايثون: 24 ثانية

    روبي : دقيقتين وثانيه

    بي أتش بي: 21 ثانيه

    جنو سي بلس بلس : ثانية ونصف

    جافا : ثانية و8 أعشار الثانية

    سكالا: ثانيتين وأربعة اعشار الثانية


    صراحة عن نفسي لم ترضيني هذه النتيجه

    وتذكرة مكتبة psyco

    لمن لا يعرف هذه المكتبه فهي تستخدم لتسريع تنفيذ كود البايثون

    عند تجربتها على نفس الكود الذي وضعه أخونا محمد

    كانت النتائج مذهله تم إظهار النتيجه بأقل من ثانيه !

    هذا هو المثال المستخدم

    كود:
    def euler5():
        i = 20
    
        seq = range(2, 20+1)
        while True:
            for j in seq:
                if i % j != 0:
                    break
                elif j == 20:
                    return i
    
            i += 20
    
    print euler5()
    المثال بعد إستخدام مكتبة التسريع

    كود:
    from psyco import full
    full()
    
    def euler5():
        i = 20
    
        seq = range(2, 20+1)
        while True:
            for j in seq:
                if i % j != 0:
                    break
                elif j == 20:
                    return i
    
            i += 20
    
    print euler5()
    كل يوم يزيد إعجابي بهذه اللغة
يعمل...
X