이전 글 "파이썬을 사용하여 고성능 테스트 도구 구현(1)"에서 파이썬 파서를 변경하여 성능을 최적화했지만, 아직 실제 요구 사항과는 거리가 멀었습니다. 이 기사에서는 자동화된 테스트에 최적화된 코드를 소개합니다.代 계획 2: 코드 최적화
🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜 🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜 🎜🎜🎜🎜. 코드를 최적화하려면 먼저 코드의 병목 현상을 찾아야 합니다. 가장 쉬운 방법은 로그를 추가하거나 디버깅이 완료된 후 삭제해야 하는데 이것이 더 번거롭습니다. Python은 profile, cProfile, hotshot, pystats 등 많은 프로필 도구도 제공하지만 이러한 도구에서 제공하는 결과는 한 눈에 가장 많은 시간을 차지하는 함수나 행을 파악하기가 쉽지 않습니다. python line_profiler는 이러한 기능을 제공합니다. "빠르고 정확하며 무자비하다"고 할 수 있는 라인이 무엇인지 직관적으로 알 수 있습니다. 다운로드 주소: http://pythonhosted.org/line_profiler/🎜🎜 line_profiler, in C :Python27Libsite-packages 디렉터리에 kernprof.py가 있습니다. 다음 예와 같이 병목 현상이 발생할 수 있는 함수에 @profile을 추가하세요. 🎜
@profile def create_msg2(self,H,msg): li = msg.keys() msg_type=li[0] ULR_avps=[] ULR=HDRItem() ULR.cmd=self.dia.dictCOMMANDname2code(self.dia.MSG_TERM[msg_type]) if msg_type[-1]=='A': msg=msg[msg_type] self.dia.setAVPs_by_dic(msg_type,msg,ULR_avps) ULR.appId=H.appId ULR.EndToEnd=H.EndToEnd ULR.HopByHop=H.HopByHop msg=self.dia.createRes(ULR,ULR_avps) else: self.dia.setAVPs(msg_type,msg,ULR_avps) ULR.appId=self.dia.APPID self.dia.initializeHops(ULR) msg=self.dia.createReq(ULR,ULR_avps) return msg
위 내용은 Python을 사용하여 고성능 테스트 도구 구현 (2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!