Вопрос

Я тестирую стресс -тестирование 2 разных проектов: один - ProxSMTPD - SMTP -прокси, написанный в C, а другой - smtp_proxy.py, который я разработал в течение 1 часа, с использованием асинкорновых и SMTPD модулей Python.

Я подчеркнул оба проекта под тяжелой нагрузкой и обнаружил, что ProxSMTPD может провести 400 SMTP -сеансов / SEC, в то время как моя программа Python может выполнять только 160 SMTP -сеансов / сек.

Итак, мой вопрос: это потому, что в асинкоре есть некоторые ограничения на производительность, или программы C просто быстрее? Или, может быть, это я, используя асинкоры неэффективно?

Это было полезно?

Решение

Я думаю, это справедливое предположение, с учетом хороший C версия и хороший Версия Python, версия C будет быстрее и масштабируемой, но в вашем случае вы, возможно, захотите запустить профилировщик и понять, почему и где ваша программа не увеличивается, как версия C. Возможно, вы сможете раскрыть узкие места и оптимизировать их, чтобы выжать еще немного производительности из вашего кода. Кроме того, я не знаю много об асинкоре, но первая библиотека Python, похоже, стремится к тому, что они хотят делать асинхронные вещи, искажены. Так что, возможно, там есть улучшение производительности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top