2011-01-26 3 views
2

나는 DLL을 만드는 프로젝트를 가지고있다. 이러한 dll은 특수 플러그인 시스템 blue-sky에 의해 나중에 python에서 호출됩니다. 그래서이 프로젝트에서 실행 파일을 만드는 것은 매우 어렵지만 프로파일 링이 필요합니다. 순수 dll로 작업 할 수있는 프로파일 러가 있습니까?순수 DLL을 어떻게 프로파일 링 할 수 있습니까?

저는 인텔 앰프를 사용해 보았습니다. Microsoft VS2008 프로파일 러는 작동하지 않습니다. 나는 또한 매우 졸음을 시도했지만 그 기능이 제한됩니다.

답변

1

dll이 파이썬에 의해로드 된 경우 파이썬 프로세스를 프로파일 링해야합니다. 모든 .pdb 파일이 존재하는 한 Microsoft 프로필러를 사용하면 DLL 내의 기호를 해결해야합니다. 또 다른 옵션은 관심있는 기능을 불러오고 호출하는 실행 파일을 만든 다음 해당 실행 파일을 프로파일 링하는 것입니다.

예. /attach:"python.exe vsperfcmd

: 당신은 .DLL를로드하여 파이썬 프로그램을 실행하는 "python.exe를"프로세스가있을 수 있으며하여 비주얼 스튜디오 명령 줄 프로파일을 첨부 할 수 있습니다 "

1

실행 중이 아닌 프로파일 링은 프로파일 링의 정의입니다. DLL에 링크하고이를 사용하는 실행 파일 (실행 파일)을 빌드해야합니다.

+0

실제로이 DLL의 코드가 실행 중이므로 프로필 가능성이 있습니까? DLL에 링크되는 것을 작성하는 것은 매우 어렵습니다. 왜냐하면 모든 플러그인 로더 시스템을 파이썬에서 C/C++로 다시 작성해야하기 때문입니다. – MaXal

+0

실제로 그렇게 어렵지는 않습니다. OS가 DLL 로딩을 제어합니다. Windows에서 DLL을로드하면 종속성을 확인하고로드합니다. 링커에로드 할 DLL을 전달하기 만하면됩니다. DLL에서 함수를 호출 할 필요조차 없습니다. Windows는 여전히'DllMain()'을 호출합니다. – MSalters

+0

너무 간단하지 않습니다. 유형을이 시스템으로 내보내므로 특정 순서로 DLL을로드해야합니다. 세부 사항을보고 싶지는 않지만 실제로는 간단하지 않습니다. 관심이 있으시면 http://sourceforge.net/projects/blue-sky/를 확인하십시오. – MaXal