2011-03-01 6 views
3

일반적으로 코드에 성능 문제가있는 경우 원인을 파악하기 위해 아래 단계를 수행합니다.프로그래밍 언어와 상관없이 일반적인 성능 문제는 무엇입니까?

  1. top 명령은 메모리 사용량을 볼 수 CPU의 사용
  2. 무료 명령을 볼 수
  3. 코드에
  4. 인쇄 진행 문
  5. 이 알고리즘을 이해하고 향상 코드에 타이밍 정보를
  6. 추가

코드가 매우 느리게 실행되는 경우 수행 할 작업은 무엇입니까? 당신이 그들을 발견 한 후 프로파일 러와

+5

가장 적합한 도구는 일반적으로 프로파일 러입니다. –

+0

어쩌면 프로파일 러를 실행 하시겠습니까? –

+0

질문의 제목에 답하기 위해 가장 일반적인 성능 문제는 특히 OOP 데이터 구조의 오버 디자인과 관련이 있습니다. –

답변

6

1), 코드
2)의 가장 느린 부분을 발견, 그들에게
2 단계에서 가장 어려운 향상을 위해 방법을 생각한다. 작은 변화가 필요하거나 모든 것을 다시 쓸 수 있습니다

1

Profiler을 사용하십시오. 리소스 병목 현상의 위치는 직관적이지 않을 수 있습니다.

1

글쎄, 예, 프로필이지만 이전 프로파일 러를 사용하지 마십시오.

스택에있는 코드 줄은 시간의 좋은 비율로 봐야합니다. 왜냐하면이 줄은 최적화를 통해 저장할 수있는 정도이기 때문입니다. 그들을 찾으려면

, 당신은이 때

  • 당신이 (를 할 때, (I/O뿐만 아니라 CPU 시간 동안)

    • 벽 클럭 시간 스택 샘플을 소요 프로파일 러를 사용한다 항상 느리지 않음),
    • 해당 라인을 포함하는 샘플의 백분율 (셀프 시간이 아닌 평균 시간 - 퍼센트)).

    좋은 것은 Zoom입니다.

    아주 간단한 또 ​​다른 방법은 random-pausing입니다.

    +0

    정말 downvote 시간이었다! – BlackBear

    +0

    @BlackBear : 얼마나 많은 [혼란스러운] 혼란 스러워요 (http://stackoverflow.com/questions/4387895/if-profiler-is-not-the-answer-what-other-choices-do-we-have/4390868 # 4390868)이 주제에 있습니다. 또한 [this] (http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343). –

    +0

    죄송합니다. 무작위 일시 중지에 대한 귀하의 답변을 의미합니다. 그리고 제가 동의합니다. 프로파일 러에 관한 문제는 좋은 것입니다. – BlackBear

    관련 문제