2008-11-02 5 views

답변

5

네이티브 개발을위한 WindowsMobile 용 도구를 찾지 못했습니다.

EnTrek 툴셋 (CodeSnitch/ProcMan)과 가장 근접한 도구는 프로파일 링 도구가 아닙니다. http://www.entrek.com/products.htm

우리가 한 일은 VC++ 용 Vistual Studio "/ callcap"스위치를 사용하여 자체 제품에 자체 프로파일 링 지원을 구축하는 것입니다. 이 스위치를 사용하면 원하는 타이밍과 카운트를 덤프하는 프로파일 링 라이브러리를 구축 할 수 있습니다. 대부분 우리를 위해 잘 작동하지만, 때로는 이러한 훅 함수의 오버 헤드가 너무 많아서 엄청난 수의 함수 호출 영역에 타이밍 결과가 왜곡 될 수 있습니다. 은 MSDN 문서에서

:

해당/callcap 옵션은 각 함수의 시작과 끝에서 후크를 프로파일 링에 대한 호출을 삽입 할 컴파일러가.

callcap 스위치없이 프로파일 링 후크 을 컴파일해야합니다. 프로파일 훅 함수 을 callcap 스위치로 컴파일하면 함수는 무한 재귀 호출 을 자체적으로 수행합니다.

다음 코드 예

, Callcaphooks.c는 callcap없이 컴파일하는 프로파일 후크를 기능 _CAP_Enter_Function를 나타낸다. 상자 밖으로합니다 (OEM이 지원을 추가하는 경우)

// File: callcaphooks.c 

#include <stdio.h> 
int main(); 

void _CAP_Enter_Function(void *p) 
{ 
    if (p != main) 
     printf("Enter function (at address %p) at %d\n", 
      p, GetTickCount()); 
     return; 
} 
void _CAP_Exit_Function(void *p) 
{ 
    if (p != main) 
     printf("Leaving function (at address %p) at %d\n", 
      p, GetTickCount()); 
    return; 
} 
+0

고마워, 셰인. 니가 말했듯이 내가 정확히 무엇을 찾고 있었는지. 그러나 여전히 큰 암시입니다. 이미 프로파일 링을위한 유틸리티 클래스가 있지만, 지금까지는 의심스러운 코드의 매크로를 통해 수동으로 추가했습니다. –

0

.NET CF 개발을 수행하는 경우 병목 현상, 특히 메모리 관련 문제를 정확히 찾아내는 데 도움이되는 유틸리티 인 Power Toys for .NET CF 3.5을 확인하십시오.

+0

죄송합니다, 제가 언급해야

http://www.codeprophet.co.cc

, 나는 파워 완구 알고 있었다하지만 코드가 기본이기 때문에 내 경우에는 그들이 사용할 수 없습니다. –

9

윈도우 CE는 Remote Call Profiler을 지원합니다. WinMo 이미지는 일반적으로 이미지에 이미 지원되어 있다고 생각합니다. CE의 경우, IMAGEPROFILER 환경 변수 세트 (프로젝트 특성에 따라 다름)가 필요합니다.

MSDN에서 명확하지 않은 점은 플랫폼 빌더로 빌드되지 않은 앱을 계측하는 방법이지만 실제로는 매우 간단합니다./callcap swith를 컴파일러 명령 행에 추가하고 cecap.lib를 링커 설정에 추가해야합니다.

물론 프로파일 러 데이터를 캡처하고 표시하는 도구가 필요합니다. 이를 위해 플랫폼 빌더 (5.0 또는 6.0)의 평가판 (평가판은 무료) 또는 eVC 4.0 (무료)을 사용할 수 있습니다.

프로필러의 사용법에 대한 자세한 내용은 CE 핵심 팀의 수로 (Sue Loh)가 조금 블로깅했습니다.

+0

+1 제안 해 주셔서 감사합니다. 그것은 생명의 은인 :) 미친 듯이 내 블리터를 프로파일 링 된 데이터로 최적화했습니다. – legends2k

3

Windows Mobile 용 Call Graph 프로파일 러를 작성했습니다. 현재 베타 단계에서 (2010 년 1 월 현재) 무료로 다운로드 할 수 있습니다.HTH는

-Zak

+0

유망 해 보였습니다. 시도해 보겠습니다. –

+0

프로젝트가 http://codeprophet.co.uk로 옮겼습니다. – oscode