سؤال

أنا اختبار الإجهاد 2 مشاريع مختلفة: واحد هو proxsmtpd - وكيل SMTP مكتوب في ج والآخر واحد، SMTP_PROXY.PY، الذي قمت بتطويره دون سن 1 ساعة، مع استخدام وحدات ASYNCORE و SMTPD Python Modules.

وشددت على كلا المشروعين تحت الحمل الثقيل، ووجدت أن ProxsMTPD قادر على عقد 400 جلسات / ثانية SMTP، في حين أن برنامج Python الخاص بي، قادر على القيام ب 160 جلسات SMTP فقط / ثانية.

لذلك، سؤالي هو، هل ذلك لأن هناك بعض قيود الأداء في Asyncore، أو برامج C أسرع فقط؟ أو ربما أكون أنا، باستخدام Asyncore بطريقة غير فعالة؟

هل كانت مفيدة؟

المحلول

أعتقد أنه افتراض عادل منح جيد ج الإصدار و جيد إصدار Python، ستكون إصدار C أسرع وأكثر قابلية للتوسعة ولكن في حالتك، قد ترغب في تشغيل ملف تعريف ومعرفة السبب وأين لا يتجاوز برنامجك بقدر إصدار C. ربما يمكنك الكشف عن المواقع الضيقة وتحسينها لضغط بعض الأداء الإضافي من التعليمات البرمجية الخاصة بك. أيضا، لا أعرف الكثير عن Asyncore ولكن يبدو أن أول شخص مكتبة بيثون ينجذبون نحو عندما يرغبون في القيام بأشياء Async ملتوية. لذلك، ربما هناك تحسن أداء هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top