Question

Je teste le stress 2 projets différents: l'un est proxsmtpd - proxy SMTP écrit en C et l'autre, smtp_proxy.py, que j'ai développé en moins d'une heure, avec l'utilisation de modules AsynCore et SMTPD Python.

J'ai souligné les deux projets sous une charge lourde et j'ai découvert que ProxSMTPD est capable de détenir 400 sessions SMTP / SEC, tandis que mon programme Python ne peut faire que 160 sessions SMTP / SEC.

Donc, ma question est, est-ce parce qu'il y a certaines limitations de performances dans AsynCore, ou les programmes C sont tout simplement plus rapides? Ou peut-être que c'est moi, en utilisant AsynCore de manière inefficace?

Était-ce utile?

La solution

Je pense que c'est une supposition juste qui a donné un bien C et a une version C et un bien Version Python, la version C sera plus rapide et plus évolutive, mais dans votre cas, vous voudrez peut-être exécuter un profileur et voir pourquoi et où votre programme ne fait pas la mise à l'échelle autant que la version C. Peut-être pouvez-vous découvrir les taches serrées et l'optimiser pour extraire plus de performances de votre code. De plus, je ne sais pas grand-chose à l'asyncore, mais les premiers gens de la bibliothèque Python semblent graviter quand ils veulent faire des trucs asynchronisés. Donc, il y a peut-être une amélioration des performances.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top