VC 보충 프로필 편
5363 단어 profile
키워드: VC Profile 성능 최적화
원작
[성명] 복사, 전파 가 필요 하 시 면 본 성명 을 동봉 해 주 십시오. 감사합니다.원문의 출처:http://morningspace.51.net/,[email protected]
Profile 의 역할
프로그램 이 실행 되 는 병목 을 분석 하고 발견 하 는 데 도움 을 주 며 시간 이 걸 리 는 곳 을 찾 는 동시에 실행 되 지 않 는 코드 를 발견 하 는 데 도 도움 을 줄 수 있 습 니 다.최종 적 으로 프로그램의 최 적 화 를 실현 한다.
Profile 구성
Profile 에는 PREP, PROFILE, PLIST 등 명령 행 도구 3 개가 포함 되 어 있 습 니 다.Profile 을 명령 행 으로 실행 할 수 있 습 니 다. 그 과정 은 PREP 에서 프로그램의 실행 가능 한 파일 을 읽 고. PBI 파일 과. PBT 파일 을 생 성 하 는 것 입 니 다.PROFILE 은. PBI 파일 에 따라 프로그램 을 실제 실행 하고 분석 하여. PBO 출력 파일 을 생 성 합 니 다.PREP 는. PBO 파일 과. PBT 파일 에 따라 새로운. PBT 파일 을 생 성 합 니 다.PLIST 는. PBT 파일 에 따라 읽 을 수 있 는 출력 을 생 성 합 니 다.
Profile 의 구체 적 인 기능
- Function timing: 프로그램 이 특정 함 수 를 수행 하 는 데 걸 리 는 시간 을 평가 합 니 다.Profile 대화 상 자 를 통 해 이 기능 을 활성화 할 수 있 습 니 다.분석 결과 Func Time 란 은 함수 실행 에 걸 리 는 시간 을 초 단위 로 기 록 했 고, 다음 칸 은 이 함수 시간 이 전체 실행 시간 에서 차지 하 는 백분율 을 나 타 냈 다.Func + Child Time 표시 줄 은 함수 와 호출 된 하위 함수 가 실행 되 는 데 걸 리 는 총 시간 을 기록 하고 다음 표시 줄 은 상기 시간 이 전체 운행 시간 에서 차지 하 는 백분율 을 보 여 줍 니 다.Hit Count 표시 줄 은 함수 가 호출 된 횟수 를 기록 합 니 다.Function 표시 줄 은 함수 의 이름 을 표시 합 니 다.
- Function coverage: 특정 함수 가 호출 되 었 는 지 기록 하여 코드 의 실행 되 지 않 은 부분 을 확인 할 수 있 습 니 다.Profile 대화 상 자 를 통 해 이 기능 을 활성화 할 수 있 습 니 다.분석 결 과 는 분 석 된 모든 함 수 를 표시 하고 실 행 된 함 수 를 * 번 으로 표시 합 니 다.
- Function counting: 프로그램 이 특정 함 수 를 호출 하 는 횟수 를 기록 합 니 다.Profile 대화 상자 에서 Custom 을 선택 하고 Custome Settings 에서 fcount. bat (VC98 \ bin 디 렉 터 리 에 있 음) 를 지정 합 니 다.주의해 야 할 것 은 fcount. bat 가 있 는 디 렉 터 리 를 지정 할 때 긴 파일 이름 을 사용 하지 않 는 것 이 좋 습 니 다. 예 를 들 어 c: \ Program Files 를 c: \ Progra ~ 1 로 쓰 는 것 입 니 다.
- Line counting: 프로그램 이 실행 하 는 코드 의 특정 줄 의 횟수 를 기록 합 니 다.Profile 대화 상자 에서 Custom 을 선택 하고 Custome Settings 에서 lcount. bat (VC98 \ bin 디 렉 터 리 아래) 를 지정 합 니 다.이 기능 은. EXE 의 디 버 깅 정 보 를 사용 하여 Profile 을 시작 하기 때문에. MAP 파일 이 필요 하지 않 습 니 다.분석 결과 라인 표시 줄 은 소스 코드 의 줄 번 호 를, 히트 카운트 표시 줄 은 이 줄 의 실행 횟수 를, 다음 표시 줄 은 이 줄 의 실행 횟수 가 모든 코드 줄 의 실행 횟수 에서 차지 하 는 백분율 을, 소스 라인 은 해당 하 는 소스 코드 를 각각 표시 했다.
- Line coverage: 코드 의 특정 줄 이 실행 되 었 는 지 기록 하고 코드 의 실행 되 지 않 은 부분 을 확인 할 수 있 습 니 다.Profile 대화 상 자 를 통 해 이 기능 을 활성화 할 수 있 습 니 다.분석 결 과 는 분 석 된 모든 코드 줄 을 표시 하고 실 행 된 줄 을 * 번 으로 표시 합 니 다.Line coverage 는 코드 줄 이 실 행 됐 는 지 만 기록 하기 때문에 Line counting 보다 실행 비용 이 적 습 니 다.
이 밖 에 Profile 대화 상 자 는 여러 번 Profile 을 실행 한 후의 통계 결 과 를 조합 하 는 Merge 기능 도 제공 합 니 다.Function coverage 기능 을 사용 하고 있다 면 모든 함 수 를 테스트 했 는 지 확인 할 수 있 습 니 다.만약 Function timing 기능 을 사용 하고 있다 면, 이전 분석 과 이번 분석의 모든 합병 운행 누적 시간 을 볼 수 있 을 것 이다.
IDE 환경 에서 Profile 사용
- 함수 분석 에 관 한 기능
프로젝트 - > 설정 - > 링크 를 선택 하고 프로 파일 링 체크 상자 활성화 를 선택 하 십시오.
재건 축 프로젝트 Build - > Profile 을 선택 하고 Profile 대화 상자 팝 업 필요 한 설정 을 한 후 OK 를 선택 하고 프로그램 을 시작 합 니 다 - 행 분석 과 관련 된 기능
Project - > Settings - > Link 를 선택 하고 Enable profiling 체크 상자 와 Generate debug info 체크 상자 를 선택 하 십시오.
프로젝트 - > 설정 - > C / C + + 를 선택 하고 라인 번호 만 선택 재건 축 프로젝트 Build - > Profile 을 선택 하고 Profile 대화 상자 팝 업 필요 한 설정 을 한 후 OK 를 선택 하고 프로그램 을 시작 합 니 다 프로필 설정 의 세 가지 방식
- profiler. ini 파일 수정
proffler. ini 는 VC98 \ bin 디 렉 터 리 에 있 으 며, [proffler] 세그먼트 에서 분석 에 참여 하지 않 는 LIB 파일 이나 OBJ 파일 을 지정 할 수 있 습 니 다.예 를 들 면:
[profiler]
exclude:user32.lib
exclude:gdi32.lib
- Profile 대화 상자 에 옵션 지정
Funciton timing, Function coverage 또는 Line coverage 옵션 을 선택 하면 Advanced settings 에서 추가 범 위 를 지정 할 수 있 습 니 다. 예 를 들 어 Profile 은 SampleApp. cpp 파일 의 특정 범위 내 코드 만 분석 하고 Advanced settings 에 입력 할 수 있 기 를 바 랍 니 다. / EXCALL / INC SampleApp. cpp (30 - 67).또한, file1. obj 와 file2. obj 가 분석 에 참여 하지 않 기 를 원 하면 Advanced settings 에 입력 할 수 있 습 니 다. / EXC file1. obj / EXC file2. obj.또한 지정 한 함수 만 설명 하고 싶 으 면 Advanced settings 에 '/ SF?'SampleFunc @ @ YAXPAH @ @, SF 매개 변 수 를 따라 가 는 것 은 특정 함수 의 수식 문자 이름 입 니 다. 이 이름 을 가 져 오 는 가장 쉬 운 방법 은 프로젝트 를 만 들 때 생 성 된 MAP 파일 에서 찾 는 것 입 니 다.
SF, EXCALL, EXC, INC 는 모두 PREP 의 명령 행 매개 변수 로 다른 매개 변수 에 대한 상세 한 설명 은 명령 행 프롬프트 에 PREP / H 를 입력 하면 얻 을 수 있다.
- 일괄 명령 파일 작성
fcount. bat, fcover. bat, ftime. bat, lcount. bat 및 lcover. bat 를 참고 할 수 있 습 니 다.
Profile 에서 데 이 터 를 출력 합 니 다.
PLIST / T 명령 은 PLIST 가. PBT 파일 내용 을 탭 형식 으로 텍스트 파일 에 출력 할 수 있 도록 합 니 다. 이 형식 은 스프 레 드 시트 나 데이터베이스 에 입력 하기에 적합 합 니 다.예 를 들 어 PLIST / T MYPRog > MYPRog. TXT, 생 성 된 MYPRog. TXT 는 proffler. xlm (VC98 \ bin 디 렉 터 리 에 있 음) 을 이용 하여 Microsoft Excel 스프 레 드 시트 에 가 져 올 수 있 습 니 다.
주의 하 다.
- 일반적으로 전체 프로그램 을 분석 하 는 의 미 는 크 지 않 습 니 다. 대부분의 Windows 응용 프로그램 은 메시지 대기 에 시간 이 걸 리 기 때문에 정확 한 포 지 셔 닝 으로 분석 할 코드 를 정 하면 Profile 의 실행 속 도 를 가속 화하 고 분석 정확 도 를 높 일 수 있 습 니 다.Profile 이 실행 되 는 동안 다른 무관 한 프로그램 을 최대한 닫 습 니 다.
- 원 격 디 버 깅 을 사용 하면 Build 메뉴 에서 Profile 기능 을 호출 할 수 없습니다.
- inline 함수 에 대해 컴 파일 러 는 실제 코드 로 함수 호출 을 대체 하기 때문에 inline 함 수 는. MAP 파일 이나 CALL 명령 을 생 성하 지 않 기 때문에 이러한 함 수 를 실행 할 때 Profile 은 알 수 없 으 며 시간, 운행 횟수 등 데 이 터 는 모두 이 함 수 를 호출 하 는 함수 에 속 합 니 다.Profile 은 inline 함수 의 줄 1 급 운행 횟수 와 덮어 쓰기 정 보 를 제공 할 수 있 습 니 다.
- 다 중 스 레 드 응용 프로그램 에 대해 Profile 의 행 위 는 선택 한 분석 방식 에 달 려 있 습 니 다. Line counting 과 Line coverage 에 대해 Profile 은 스 레 드 간 에 어떤 차이 가 있 는 지 구분 하지 않 고 현재 실행 중인 모든 스 레 드 를 포함 합 니 다.Function timing, Function coverage 와 Function counting 에 대해 분석 결 과 는 스 레 드 에 달 려 있 습 니 다. 다음 과 같은 방식 으로 독립 스 레 드 를 분석 할 수 있 습 니 다.
스 레 드 의 주 함 수 를 초기 함수 로 표시 (PREP / SF 옵션 사용) 프로그램의 모든 함수 포함 (PREP / EXC 옵션 사용 하지 않 음) 그렇지 않 으 면 분석 결 과 는 설명 하기 어렵다.
(끝)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Linux] 초기 설정Profile 적용 순서 (1) /etc/profile.d/test.sh -> 모든 sh 파일이 해당된다. (2) /etc/profile (3) /etc/bashrc (4) ~/.bashrc (5) ~/.bash_p...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.