2009-06-05 4 views
2

mod_wsgi/Python 웹 응용 프로그램에서 이상한 문제를 추적하려고했습니다. 나는 응용 프로그램 방법을 객체를 생성하고 호출 핸들러가이의 시작과 끝에mod_wsgi/Python이 최적화 작업을하고 있습니까?

def my_method(self, file): 
    self.sapi.write("In my method for %d time"%self.mmcount) 
    self.mmcount += 1 

    # ... open file (absolute path to file), extract list of files inside 
    # ... exit if file contains no path/file strings 
    for f in extracted_files: 
     self.num_files_found += 1 
     self.my_method(f) 

을, 나는 브라우저에

obj.num_files_found 

물품.

그래서 이것은 파일 내부의 파일 참조 트리로 이동하는 재귀 함수입니다. 파일의 모든 참조가 인쇄 된 다음 모든 파일이 파일이없는 리프 노드가 될 때까지 해당 참조가 열리고 검사됩니다. 내가이 일을하는 이유는 정말로 중요하지 않다. 그것은 더 현명한 예일 뿐이다.

당신은 출력이 결정적 기대

이러한 예상대로는 처음 몇 요청에 대한

Files found: 0 
In my method for the 0 time 
In my method for the 1 time 
In my method for the 2 time 
In my method for the 3 time 
... 
In my method for the n time 
Files found: 128 

그리고 있다. 나는 이전 새로 고침하고 128 개 파일을 열거 N 시간을 소요 어떤 코드/파일 변경에서 내가 아는 비록

Files found: 0 
In my method for the 0 time 
Files found: 128 

를 새로 고침으로는 다음 나는만큼에 대해 다음 얻는다.

그러면 질문 : mod_wsgi/Python에는 완전한 실행을 중지시키는 내부 최적화가 포함되어 있습니까? 출력이 결정 론적이며 캐시라고 추측합니까?

참고로 예상 한대로 새로 고침 할 때마다 REMOTE_PORT가 1 씩 증가합니다 ... 짧은 출력을 사용할 때 REMOTE_PORT의 증가가 크게 증가합니다. 그러나 관련성이 없을 수도 있습니다.

내가 파이썬에 새로운 오전,

그것이 무엇인지 알고

를 해결하지만, 아파치, mod_python을, mod_wsgi에 거의 모든 HTTP 관련 및 다시 설치 고정을 추출 부드럽게 문제. 뭔가 꽤 깨진 했지만 지금은 좋아 보인다 :)

답변

관련 문제