다소 복잡한 알고리즘 내에서 불필요한 중복 호출을 추적하는 데 어려움을 겪고 있습니다.DTrace를 사용하여 호출 스택 트리에서 중복 함수 호출 감지
내 알고리즘은 캐시되지 않고 비교적 비싼 함수의 중복 호출 (여러 서브 루틴에서)으로 인해 속도가 크게 느려지는 것처럼 보입니다. 이것을 확인하기 위해 Dtrace를 사용하여 호출 스택 트리의 주어진 분기 내에서 단일 함수의 여러 호출을 감지하려고합니다.
I가 DTrace를 요청할 수 있도록하고 싶습니다 : ("c();"
을 예를) 중복 된 함수 호출에 대한 (첨부 이미지 참조, 여기 "foo();"
) 주어진 함수 내에서 호출 스택 트리를 검색
또한 가능한 경우 :
는 (배 "c();"
여기) 각각의 호출 횟수로 로그
- 로그 각 경우 (
"foo()/a()/c()"
,"foo()/a()/b()/c()"
,"foo()/a()/b()/d()/c()"
)의 호출 스택.
이 가능합니까? 그리고 그렇다면 어떻게 생각하십니까?
미리 감사드립니다.
참고 : 그것은해야하지, 내 코드는 오브젝티브 C에 실제로 비록 내 샘플 코드에서 C를 사용하지만, 이런 종류의 언어에 얽매이지의 종류해야 하는가? 일반적인 접근 방식/아이디어.