2011-09-16 7 views
0

서버에서 메모리 사용을 기록하는 프로그램을 만들고 있습니다. 서버에 여러 인스턴스가 실행 중이고 프로그램이 모두 로깅 중입니다.파이썬에서 스레딩

나는 더 최적이 될 것이라고 생각하고 있습니다. 옵션

:
각 인스턴스를 처리
1. 단일 스레드 프로그램, 하나 하나 (두 개의 인스턴스를 가정). 시간 지연 0.5 초.
2. 각각 하나의 인스턴스를 처리하는 이중 스레드, 시간 지연 : 1 초.

제안 사항?

답변

2

두 옵션 모두 완벽합니다. 단일 스레드 프로그램을 작성하는 것이 더 쉽기 때문에 성능 요구 사항이나 타이밍 제약 조건이 엄격한 경우가 아니면 빠른 개발과 버그 방지를 위해 스레드를 포기해야합니다.

+0

현재 우선 순위는 빠른 개발이 아니지만 더 나은 결과입니다. 인스턴스 수가 6 ~ 7 개로 늘어나고 로그 파일에는 몇 가지 기본 통계 계산이 있습니다. –

+0

@Parag Gupta 파이썬에서는 [GIL] (http://stackoverflow.com/questions/1294382/what-is-a-global-interpreterlock-gil)을주의해야합니다 (즉, 프로그램이 CPU- 바운드이면'threading' 대신에'multiprocessing'을 사용합니다). 아직도, 나는 더 간단한 옵션으로 항상 시작할 것입니다. 프로그램을 신중하게 설계하는 경우 (예 : 글로벌 변수를 사용하지 말고, 단일 인스턴스를 한 번 측정하는 독립 메소드 등), 필요할 때마다 여러 스레드로 전환 할 수 있습니다. – phihag

+0

감사. 나는 그 경우에 하나의 스레드로 갈 것이라고 생각합니다. 정확하지 않은 경우 나중에 전환됩니다. =) –