none
비주얼 스튜디오 2010 프로파일링 질문입니다.

    질문

  •  

     

     

    저는 평소 코딩할때 , 메모리에 대해 상당한 결벽증? 이 있습니다 .ㅎ

     

    그래서 메모리 프로파일링을 필수로 생각하는데요 ,

     

    세상에서 가장 즥인다는 비주얼스튜디오의 프로파일링에 의문이 가네요 .

     

    제가 생각한것과 너무 다른건지 , 제가 모르는건지,

     

    객체를 추적하기가 상당히 난해한데요 ..

     

    제가 생각하는 프로파일링은..

    http://www.youtube.com/watch?v=LZKzsO3LbYs  (2분정도 보시면 됩니다_)

    사용한 메모리와 전체량이.. 실시간! 으로 표시되는데요, 비주얼 스튜디오에서는 실시간으로

     

    추적을 할수 없더라고요 , 프로그램이 다 끝날때까지 기다리라고 하는것 같은데요 ,,

     

    어쩌면 필요없는 상황이라고 생각할수도 있지만 ,

     

    만약 상황이 , 프로그램이 객체를 동적으로 엄청 생성하는 상황이고 ,

     

    나름대로 dispose 를 구현하여 적절히 메모리를 비워줬음에도 ,프로그래머도 사람인지라, 실수도 발생할수도 있지 않을까요?

     

    그래서.. 

     

    위와 같이 비주얼 스튜디오에도 실시간으로 메모리 누수나 가비지 컬랙팅의 유무를 확인하는 방법이 없나요 ?

     

    시원한 답변 기다리겠습니다 ~

    (사용프로그램은 VS2010 울티메이트 입니다 ~)

     

    2011년 1월 11일 화요일 오전 7:34

답변

  • 부족한 지식이지만, 아는 한도내에서 답변 드리겠습니다.

    혹시 제가 틀리면 답변을 이어주실 고수분들께서 정정해주시기 바랍니다. :)

    현재 비주얼 스튜디오 2010에는 말씀하신 것 같은 실시간 프로파일러는 포함되어 있지 않습니다.

    혹시 실시간 메모리 누수같은 것을 모니터링하고 싶으시다면 서드 파티 툴을 사용하셔야 할 것 같습니다.

    몇가지 서드 파티 툴이 있는데요, 그 중에 야매코더(욕이 아닙니다)님께서 필요로 하는 기능을 가진 툴도 몇개 있네요.

    자세한 서드 파티 툴의 비교를 참고하시기 바랍니다.

     

    도움이 되셨으면 좋겠네요 :)

    • 답변으로 표시됨 야매코더 2011년 1월 15일 토요일 오전 4:08
    2011년 1월 11일 화요일 오전 11:58

모든 응답

  • 부족한 지식이지만, 아는 한도내에서 답변 드리겠습니다.

    혹시 제가 틀리면 답변을 이어주실 고수분들께서 정정해주시기 바랍니다. :)

    현재 비주얼 스튜디오 2010에는 말씀하신 것 같은 실시간 프로파일러는 포함되어 있지 않습니다.

    혹시 실시간 메모리 누수같은 것을 모니터링하고 싶으시다면 서드 파티 툴을 사용하셔야 할 것 같습니다.

    몇가지 서드 파티 툴이 있는데요, 그 중에 야매코더(욕이 아닙니다)님께서 필요로 하는 기능을 가진 툴도 몇개 있네요.

    자세한 서드 파티 툴의 비교를 참고하시기 바랍니다.

     

    도움이 되셨으면 좋겠네요 :)

    • 답변으로 표시됨 야매코더 2011년 1월 15일 토요일 오전 4:08
    2011년 1월 11일 화요일 오전 11:58
  • 와우! 감사합니다 ..

    한번 잘 보고 , 블로그에도 남겨야 겠네요 !

     

    사실 "스튜디오 2010에는 말씀하신 것 같은 실시간 프로파일러는 포함되어 있지 않습니다."

    와 같은 답을 원했습니다 ㅜㅜ 제가 생각할때 비주얼스튜디오는 지구상에서 가장 편리한 IDE 라 ㅋ 생각했었거던요 ..

     

    역시나 요런건 다른 툴을 이용해야 하는거군요

     

    사실 XNA 나 비주얼 적인 작업을 할때 파티클 십만개 백만개 생성하는데 ,,

    메모리관리적인 측면에서 볼때 , 화면에서는 사라지지만 , 쫌 찝찝하긴 하거든요 .. ^^ ;

     

     

     

    혹시 다른분들도 이러한 경험이나 , 서드파티툴을 이용하시는 분있으면 관련 링크나

    한마디 해주실 분이 있다면 글남겨 주세요 ^^ ;

     

     

    2011년 1월 15일 토요일 오전 4:13
  • 위의 프로파일링에 대해 좋은 제품을 추천해 주셔서 크게 답변드릴 내용은 없지만,
    알아두시면 도움이 될 것 같습니다.

    일단 Visual Studio 의 프로파일링은 Assembly Embeded 방식의 프로파일링입니다.
    닷넷 어셈블리를 직접 조작하여 Aspect 코드를 넣어 프로파일링을 하는 방식입니다.

    이런 방법은 실시간 제품과 중요한 차이를 보입니다.

    실시간 프로파일링 방식은, 사실 정확한 프로파일링 분석이 힘들 수 도 있습니다.
    엄청난 차이는 아니지만, 실시간 프로파일링은 사실 실시간인 만큼 프로파일링 성능에 영향으르 미치게 됩니다.

    반면, Aspect 코드를 삽입하는 방법은, 직접 컴파일 및 JIT되어 프로파일링의 오차를
    매우 줄일 수 있습니다. 특히 다중 스레드 방식의 프로파일링은 이러한 방식으로 측정하는것이 좋은 경우도 있습니다.

    일단 서두는 여기까지 접고요.

    일반적으로 .NET Framework 의 대부분의 중요 기능들은 "성능 카운터(Performance Counter)" 정보를 제공해 줍니다.
    한글 OS인 경우 "관리도구->성능 모니터"에서 .NET 어플리케이션이 실시간으로 어떻게 돌아가는지 모니터링할 수 있습니다.

    일부 성능카운터를 제공하지 않는 클래스들이 있는데, 이러한 부분은 Custom Performance Counter 를 구현하시면 됩니다.

    만약 프로파일링의 범위가 크지 않다면 고려해볼만 할 듯 합니다.


    엄준일 (Junil, Um) Microsoft Visual Studio ALM MVP (Team System) Personal Blog : http://blog.powerumc.kr Visual Studio Korea Team Blog : http://vsts2010.net
    2011년 1월 17일 월요일 오후 2:16
  • 그렇군요 , 참고 하겠습니다 . 감사합니다 !
    2011년 1월 19일 수요일 오전 8:37