أداء django مقابل القضبان


الاجابه 1:

ربما تكون متشابهة إلى حد كبير. تذكر استخدام Passenger والأدوات الأخرى المتاحة لـ Ruby on Rails وستحصل على أسرع ، nginx وما إلى ذلك.

ثم يهم كيف تقوم ببرمجته ويمكنني الاستمرار. قاعدة بيانات ، فهارس ، تخزين مؤقت.

لا يعرف Django و Rails بسرعة كبيرة ، ولا يجب عليهما أو تصميمهما بهذه الطريقة.

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

بالكاد يرفع أحد مشاريعي طويلة الأمد وحدة المعالجة المركزية بنسبة 1٪ ، نعم هذا صحيح ، ولكن هناك الكثير من الأشخاص يستخدمونها ، إلى أي مدى كنت سأستخدم Django أو Rails ، بكل أمانة ، لا أريد للتفكير في الأمر ، الكثير.

ولكن انظر فقط إلى أنه حتى إذا اعتاد تويتر أن ينقطع من حين لآخر (أو أكثر) ، فإنه لم يتم كتابته بشكل مثالي في Rails خالصة ، ومع ذلك فعل ما فعله ، فقد أنشأ العديد من الجيجابايت من البيانات كل دقيقة أو نحو ذلك ، ما مدى سرعة يحتاج لأن يكون ؟ هل تحتاج إلى أن تكون أسرع من Twitter ، ثم يمكنك أن تكتبه في التجميع فقط لأنك تريد ذلك.

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

لقد عملت ذات مرة على نظام ضخم مكتوب بلغة Python (وليس Django) ، حيث قامت بعشرات الآلاف من الأحداث كل دقيقة ، دون مشاكل كبيرة ، باستثناء التقارير. الحصول على ملايين الملايين من نقاط البيانات ، مباشرة ، حول كسر Pythons. لقد كتبنا للتو هذا الجزء في Go (Golang) وجعلنا python الواجهة الأمامية تطلبه من خدمة أخرى ، لا مشكلة كبيرة ، سهلة ، لا إعادة كتابة ، وسريعة. لم يكن هناك أي ذكر على الإطلاق إذا كان يجب أن نقوم بالنظام بأكمله في Go ، يمكننا ذلك ، لكن هذا كان سيأخذ المزيد من الناس ، والمزيد من الوقت والطريقة المزيد من المال ، ومع ذلك يمكننا أن نفعل.

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


الاجابه 2:

بايثون أبطأ من روبي بشكل عام. لكن الأمر لا يتعلق بكون اللغة بطيئة أو سريعة. يتعلق الأمر بكيفية تحسينه للعمل وفقًا لاحتياجاتك. تحتاج إلى تجنب استعلامات N + 1 ، لديك استعلامات لقاعدة البيانات التي تم تحسينها.

ولكن مع ذلك ، فإن كلاهما سوف يتدرج بالتأكيد حتى نقطة معينة .. حيث ستضرب الجدار.

لا يوجد إطار عمل جاهز للعمل معك كما هو ، دون إجراء تعديلات بمجرد تجاوز عتبة معينة.

لكن رهانك الأكثر أمانًا هو الذهاب إلى Elixir / Go إذا كنت تخطط لإطلاق موقعك لملايين من المستخدمين دون أي مشكلة. تم تصميم Ruby لأجهزة الكمبيوتر في عام 1993 ، ولكن تم تصميم هذين Elixir و Go مع مراعاة التزامن.

ولكن أقترح عليك بناء MVP الخاص بك في Rails ، ثم البدء في الحصول على بنية خدمات صغيرة إلى أجزاء من تطبيقك التي تعتبر أداءً ثقيلًا بالنسبة لـ Go / Clojure / Elixir


الاجابه 3:

لا ، إنهم متماثلون.

السؤال الحقيقي الذي يجب أن تطرحه: هل الأداء عامل رئيسي في مشروعي؟ و لماذا؟

قد تعتقد أنه سيكون لديك تطبيق عالي التحميل ... ولكن استنادًا إلى تجربتي ، سيتعين عليك القيام بجولة طويلة نحو الوصول إلى نقطة معالجة آلاف الطلبات.

إذا كنت لا تستطيع الاختيار بين ريلز وجانغو ، أقترح التحقق من ذلك

مقارنة بين روبي أون ريلز وأداء جانغو

القضبان أم لا القضبان؟ هذا هو السؤال.

اذهب مع روبي أون ريلز إذا كنت تريد:

  • لإطلاق مشروعك في أقرب وقت ممكن
  • لتطوير MVP أو نموذج أولي
  • لبناء شركة ناشئة أو سوق

اذهب مع Django إذا كنت تريد:

  • لإنشاء تطبيق ويب أو موقع ويب
  • لدمج أحدث التقنيات في المستقبل ، مثل التعلم الآلي.

الخلاصة: يعتمد الفرق بين أداء Rails و Django على نوع المشروع. من الأفضل اختيار إطار عمل ليس من خلال التركيز فقط على أداء إطار العمل ولكن من خلال اكتشاف إيجابياته وسلبياته لمشروعك.


الاجابه 4:

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

أعتقد أنه من المهم أيضًا ملاحظة أن الأداء لا يقتصر فقط على سرعة الاستعلامات ، إلخ. لأن تحميل الصفحة يعتمد على الكثير من العوامل. بمعنى آخر ، يمكن أن يكون Rails أسرع في تحميل الصفحات من Django إذا قمت بضبطه ولكن الشيء نفسه ينطبق على Django.


الاجابه 5:

إذا كنت مهتمًا بالبحث المتعمق لأداء Django ، فإنني أوصي بإلقاء نظرة على موقعنا

مدونة Mirumee

. تتناول سلسلة "Django ، السريعة" العديد من الجوانب المختلفة لأداء Django / Python على مستويات مختلفة. ستجد هناك بعض الإرشادات العامة التي تنطبق على أي تطبيق ويب أو إطار عمل تقريبًا (

الجزء الاول

) ، بحث متعمق ومقاييس للإعدادات المختلفة لخوادم WSGI وإصدارات Python التي تشغل Django (

جزء ثان

) بالإضافة إلى النصائح والاقتراحات حول كيفية تحديد الاختناقات وقياسها ومعالجتها في تطبيق Django الخاص بك (

الجزء الثالث

).

إخلاء المسؤولية: كشركة نحن متخصصون في تطبيقات Django و Python عالية الأداء. سلسلة "Django، fast" هي محاولة لتوثيق ومشاركة خبرتنا الممتدة على مدى 8 سنوات في كتابة تطبيقات الويب المهمة والقابلة للتطوير بدرجة عالية.