2010-01-07 2 views
2

나는 두 개의 다른 프로젝트를 테스트 중이다 : 하나는 proxsmtpd - smtp 프록시는 C로 작성된 그리고 다른 하나는 asyncore와 smtpd를 사용하여 1 시간 이내에 개발 한 smtp_proxy.py이다. 파이썬 모듈. 파이썬 asyncore 대 평범한 오래된 C

내가, 부하 을 두 프로젝트를 강조하고 proxsmtpd 내 파이썬 프로그램 동안 400 개 SMTP 세션/초, 을 보유 할 수 있다는 것을 발견 만 160 SMTP 세션/초를 할 수 있습니다.

asyncore에서 일부 성능 제한이 있기 때문에 제 질문은, 또는 C 프로그램이 더 빠릅니까? 아니면 비효율적 인 방법으로 asyncore를 사용하는 저입니까?

+0

Python을 처음 접하는 사람이라면 비효율적 인 방식으로 작업하는 것이 매우 안전 할 것입니다. Python을 처음 접하는 사람들은 일반적으로 문자열의 개별 문자를 반복하는 "C 스타일"을 작성하고 일반적으로 너무 낮은 수준에서 작업하는 Python 기본 요소를 효과적으로 사용하지 않습니다. 접근 방식이 "Pythonic"이고 효율적이라고 확신하지 않는 한 Noufal의 프로필 제안은 좋습니다. 가장 느린 코드가 왜 느린 지 알지 못하는 경우 코드로 업데이트를 게시하십시오. –

답변

2

나는 그것이 좋은 C 버전과 좋은 파이썬 버전을 주어 공정한 가정 생각, C 버전은보다 빠르고 확장 될 것입니다하지만 경우에, 당신은 프로파일 러를 실행하고 이유를 할 수 있습니다 프로그램이 C 버전만큼 확장되지 않는 곳. 어쩌면 타이트한 부분을 발견하고 최적화하여 코드에서 더 많은 성능을 끌어낼 수 있습니다. 또한, 나는 asyncore에 대해 많이 알지 못한다. 그러나 파이썬 라이브러리의 첫 번째 사람들은 비동기식 물건들을 비틀어 넣고 싶을 때 끌리는 것처럼 보인다. 그래서 아마도 거기에 성능 향상이 있습니다.

관련 문제