2009-10-06 2 views
0

C#에서 Winform 응용 프로그램을 작성했습니다. 내 코드의 성능을 어떻게 확인할 수 있습니까? 즉, 주어진 시간이나 이벤트에서 어떤 형식의 참조가 활성화되어 있는지 확인할 수 있습니다. 필요하지 않은 경우이를 제거하여 가비지 수집에 사용할 수 있도록 할 수 있습니다. VS 2005 또는 무료 도구를 사용하여이를 수행 할 수있는 방법이 있습니까? 자습서 나 안내서가 유용 할 것입니다.디버깅 및 효율 향상 C# winform 코드

[편집] 죄송합니다. 제 질문에 혼란이 있으시면 죄송합니다. 나는 전문적인 도구를 찾는 것이 아니라 코드를 더 잘 사용하고 코드를 효율적으로 작성하고 이해할 수있는 방법을 찾고 있습니다. 당신이 찾고있는 무엇

감사

답변

1

코드를 효율적으로 만드는 것은 항상 제 2 단계입니다. 먼저 작동하도록 코드를 작성합니다. 다음으로, 내가 성능에 만족하지 못하면 프로파일을 작성합니다. 진실은 대부분의 응용 프로그램이 처음 작성한 후 충분히 빠르게 실행됩니다. 때로는 더 나은 성능이 필요합니다. 성능은 다양한 방법으로 얻을 수 있습니다. 모두 응용 프로그램에 따라 다릅니다. 주로 LOB 응용 프로그램을 작성하므로 데이터베이스, 서비스 및 저장소에 많은 IO를 처리합니다. 이 전화는 모두 매우 비싸고 제한되어야 할 필요가있어서 최적화 할 첫 번째 영역입니다. 게으른 로딩, eager-loading, 일괄 처리 호출, 덜 자주 호출 등으로 최적화합니다. 나는 최근 수백 개의 컨트롤을 동적으로 생성하는 winforms 앱을 가지고 있었고 오랜 시간이 걸렸다. 그것이 내가 다루어야 할 또 다른 병목입니다. 프로파일 러를 사용하여 응용 프로그램의 성능을 측정합니다.

무료 Equatec profiler을 사용하십시오. 통화 시간 및 통화 횟수를 표시합니다. 프로파일 러는 호출 스택을 드릴 다운 할 수있는 멋진 보고서와 시각적 디스플레이를 제공합니다.

0

KOBRA,

는 메모리 프로파일 러라고합니다. NET에 대한 하나의 (유료) 버전이있을 것입니다. ".NET Memory Profiler"라고 말하면서 광범위하게 사용하지는 않았지만 당신이 묻는 질문에 대답해야합니다. 로드 된 유형의 인스턴스 카운트를 제공하는 것과 같은 기본적으로 동일한 작업을 수행하는 몇 가지 다른 인스턴스가 있습니다. 그리고 인스턴스가 어떤 이유로 다른 곳에서 가비지 수집되지 않을 때 식별하는 데 도움이됩니다 (예 : 이벤트 핸들러 참조, 정적 속성 등) . 이 도움이

희망,

딜런

1

Red Gate Performance Profiler

는 ... 그것은 백만 배는 이곳에 말했다 됐어요. 성능 문제가 의심되는 경우 응용 프로그램의 프로필을 작성하십시오. 전화가 걸리는 시간과 코드의 병목 현상을 알려줍니다.