Pergunta

Estou testando 2 projetos diferentes: um é proxsmtpd - proxy SMTP escrito em C e o outro, SMTP_PROXY.PY, que desenvolvi menos de 1 hora, com o uso dos módulos Python Asyncore e SMTPD.

Eu enfatizei os dois projetos sob carga pesada e descobri que o Proxsmtpd é capaz de manter 400 sessões / s, enquanto meu programa Python, é capaz de fazer apenas 160 sessões SMTP / s.

Então, minha pergunta é: é porque existem algumas limitações de desempenho nos programas de assíncrona ou C são apenas mais rápidos? Ou talvez seja eu, usando o Asyncore de maneira ineficiente?

Foi útil?

Solução

Eu acho que é uma suposição justa de que dado um Boa C versão e um Boa Versão Python, a versão C será mais rápida e escalável, mas, no seu caso, você pode querer executar um perfil e ver o porquê e onde seu programa não está escalando tanto quanto a versão C. Talvez você possa descobrir os pontos apertados e otimizá -lo para espremer um pouco mais de desempenho do seu código. Além disso, não sei muito sobre assíncrona, mas as primeiras pessoas da biblioteca Python parecem gravitar quando querem fazer coisas assíncronas. Então, talvez haja uma melhoria de desempenho lá.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top