Ruby 스 크 립 트 효율 인 스 턴 스 공유 최적화

profile.rb 는 Ruby 프로그램 을 위 한 proffler 로 프로그램 이 실행 하 는 성능 병목 을 찾 을 수 있 도록 각 방법의 운행 시간 을 통계 하고 출력 할 수 있 습 니 다.이번 에는 그것 으로 스 크 립 트 의 운행 시간 을 분석 하 겠 습 니 다.사용 방법 은 간단 합 니 다.명령 행 옵션-r profflee 를 추가 하면 됩 니 다.
ruby -r profile rename.rb
실행 이 끝나 면 통계 정 보 를 표준 오류 출력 에 출력 합 니 다.다음 그림 에서 보 듯 이:

profflee 는 각 방법의 운행 시간 을 2 가지 로 나 누 었 다.첫 번 째 계산 은 방법 에서 방법 으로 되 돌아 오 는 시간 을 전체 시간 이 라 고 한다.두 번 째 는 전체 시간 에서 이 방법 에서 다른 방법 을 사용 하 는 데 걸 리 는 시간 을 뺀 것 을 실제 시간 이 라 고 한다.출력 정보 줄 마다 필드 의 의 미 는 다음 과 같 습 니 다(왼쪽 에서 오른쪽으로).
이 방법 은 실행 시간 이 전체 시간의 백분율 을 차지 하고 비례 가 높 을 수록 이 줄 코드 가 최적화 되 어야 한 다 는 것 을 설명 한다.
전체 시간의 총화
실제 시간의 총화
호출 된 횟수
매번 호출 된 평균 실제 시간(밀리초)
매번 호출 된 평균 전체 시간(밀리초)
방법
위의 그림 에서 보 듯 이 스 크 립 트 가 실 행 된 시간 은 대부분 순환 에 소모 되 었 다.해결 방법 은 두 가지 가 있다.순환 을 없 애 거나 순환 횟수 를 줄 이 는 것 이다.전 자 는 실현 하기 어렵 고,아직 방법 을 생각 하지 못 했 으 니,아마도 근본적으로 불가능 할 것 이다.스 크 립 트 의 mapping 크기 는 2685 이 므 로 파일 이름 을 수정 할 때마다 2685 번 순환 하고 순환 하 는 encode 와 gs ub!다 시간 걸 리 는 작업 이 야.보통 파일 이름 의 길 이 는 30 자 를 넘 지 않 습 니 다.파일 이름 의 모든 문 자 를 옮 겨 다 니 는 방식 으로 이름 을 바 꾸 면 순환 횟수 를 30 회 를 넘 지 않 게 줄 일 수 있 습 니 다.
코드 를 수정 한 후 분석 명령 을 다시 실행 한 결과 스 크 립 트 운행 시간 이 379395 초 에서 2418 초 로 최적화 되 었 고 성능 이 156 배 향상 되 어 2 개의 수량 급 효 과 를 얻 었 다.

좋은 웹페이지 즐겨찾기