Pregunta

I'm Stress Testing 2 proyectos diferentes: uno es proxsmtpd - proxy SMTP escrito en c y el otro, smtp_proxy.py, que desarrollé menos de 1 hora, con el uso de módulos de asyncore y smtpd python.

Hice hincapié en ambos proyectos bajo una carga pesada y descubrí que ProXSMTPD puede mantener 400 sesiones SMTP / seg, mientras que mi programa Python puede hacer solo 160 sesiones SMTP / seg.

Entonces, mi pregunta es, ¿porque hay algunas limitaciones de rendimiento en Asyncore, o los programas C son simplemente más rápidos? ¿O tal vez soy yo, usando Asyncore de manera ineficiente?

¿Fue útil?

Solución

Creo que es una suposición justa que le dio un bueno Versión c y un bueno Versión de Python, la versión C será más rápida y escalable, pero en su caso, es posible que desee ejecutar un perfilador y ver por qué y dónde su programa no está ampliando tanto como la versión C. Quizás pueda descubrir los puntos apretados y optimizarlo para exprimir un mayor rendimiento de su código. Además, no sé mucho sobre Asyncore, pero la primera gente de la biblioteca de Python parece gravitar cuando quieren hacer cosas de Async se retuerce. Entonces, tal vez haya una mejora del rendimiento allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top