나는이 같은 아이디어를 보게되었습니다 생각 : 당신이 스크립트에 파이썬를 호출 할 때
if __name__ == "__main__":
# do something if this script is invoked
# as python scriptname. Otherwise, gets ignored.
은 무엇 발생하면, 직접 호출되는 파일 인 경우 해당 파일이 "__main__"
에 속성 __name__
세트가 있습니다 파이썬 실행 파일. 그렇지 않으면 (직접 호출되지 않은 경우) 가져 오기됩니다. 당신은 예를 들어, 필요한 경우
지금, 당신은 당신이 가정, 스크립트에서이 트릭을 사용할 수 있습니다
def somescriptfunc():
# does something
pass
if __name__ == "__main__":
# do something if this script is invoked
# as python scriptname. Otherwise, gets ignored.
import cProfile
cProfile.run('somescriptfunc()')
이이 스크립트를 변경합니다. 가져올 때, 멤버 함수, 클래스 등을 정상적으로 사용할 수 있습니다. 을 실행하면 명령 줄에서을 실행하면 자체 프로필을 만듭니다.
이게 당신이 찾고 있는게 있니? 나는 아마도, 그래서 여기에 필요한 더 수집 한 의견에서
간다 :
# do some stuff to extract the parameters
# do something with the parameters
# return the response.
:
당신이 CGI 변화에서 스크립트를 실행하는 경우이 양식입니다입니다 나는 추상적 인을 말할 때
, 당신은이 작업을 수행 할 수 있습니다 : 당신의 파이썬 경로에 파일을
def do_something_with_parameters(param1, param2):
pass
if __name__ = "__main__":
import cProfile
cProfile.run('do_something_with_parameters(param1=\'sometestvalue\')')
넣어. 자체 실행하면 프로파일 링 할 기능을 프로파일 링합니다.
이
import {insert name of script from above here}
# do something to determine parameter values
# do something with them *via the function*:
do_something_with_parameters(param1=..., param2=...)
# return something
그래서 CGI 스크립트는 당신의 기능에 약간의 래퍼가됩니다 (어쨌든 인)과 기능은 이제 자체 테스트입니다 :
지금, 당신의 CGI 스크립트에 대해 수행하는 스크립트를 만들 .
그러면 프로덕션 서버와 떨어져 바탕 화면에 만들어진 값을 사용하여 기능을 프로파일 링 할 수 있습니다.
아마도이 방법을 사용하면 효과가 있을지 모르지만 작동 할 수 있습니다.
예! 감사. 당신이 비록 somescriptfunc()에서 cProfile look을 보았을 뿐인가? 어떻게 전체 .py 파일을 보게 할 수 있습니까? – Parker
수정하십시오.어떻게할지는 모르겠지만 프로파일 링이 필요한 모든 기능을 수행하는 함수를 사용하거나 프로파일 링이 필요한 각 함수에서'cProfile.run'을 실행하십시오. 스크립트는 통역사가 직접 호출해서는 안됩니다. 그렇게한다면 CGI 형식으로 스크립트를 실행할 때 프로파일 링하게됩니다. –
예, CGI에서 스크립트를 실행하고 있습니다. 어떻게하면 http://example.com/cgi-bin/myscript.py?val=someVal에서 cProfile 출력을 얻을 수 있습니까? – Parker