2012-02-19 1 views
1

응용 프로그램으로 배포하기 쉽도록 MacRuby에 응용 프로그램을 포팅하고 이진 보석 등을 설치하기 위해 XCode가 있어야하는 대신 기본 AppleScript (ScriptingBridge)를 사용할 수 있습니다. 응용 프로그램은 bibtex-ruby 및 citeproc-ruby를 사용하며 MacRuby에서는이 두 가지 보석 모두 매우 느립니다. bibtex-ruby의 벤치 마크는 100 배 느리고 citeproc-ruby도 4-5 초 걸립니다. 나는이 두 보석의 저자와 함께 그들을 최적화하는 방법을 찾기 위해 노력하고 있으며 루비 교수의 결과물을 필요로했다. 이것은 MacRuby에서는 작동하지 않지만 대신 XCode와 Instruments가 제안되었습니다. Instruments를 시작할 수는 있지만 많은 옵션이 있으며 어떤 서브 루틴이 대부분의 시간을 차지하는지에 대한 유용한 정보를 얻을 수 있도록 구성하는 방법을 모르겠습니다.Instruments를 사용하여 MacRuby 응용 프로그램 프로파일 링

인 스트 루먼트를 사용하여 보석으로 MacRuby 앱을 프로파일 링하려면 어떻게해야합니까?

답변

1

제안은, 보석에서 성능 문제를 처리 할 필요를 통과 한하지 (또는 다른 방법도 환영) :

  • 당신이 포인트를 분리 할 수 ​​있다면 어떤 보석 기능 (또는 보석의에서 의심스러운 특정 기능)이 호출되면 통화 전후의 시간을 측정 한 오래된 학교 추적을 삽입 한 다음 몇 번 실행 한 후 로그에서 통계를 집계 할 수 있습니다.

  • Instruments를 사용하려면 보석 기능을 시작하는 상용구 객체 클래스를 만들어 macruby 메소드 주소가 아닌 시간 프로파일 러의 콜 그래프에서 찾을 수 있습니다. 두 경우 모두

, 아마 다른 도구와 같은 성격의 프로파일 정보를 재생하기 위해 어떤 종류의 및 프로필 정보를 개발자 요구의 수준으로 인해 호환성 상황을 구체적으로 이해하는 것이 유용 할 것이다. 또 다른이의 DTrace를 사용

0

, here 제안 :

열기 개의 터미널 창, 첫 번째 유형을 $ 당신의 벤치 마크-script.rb &, 두 번째 창에서 다음 PID를 기억하고 유형, $ sudo dtrace -s path-to-macruby-source/sample-macruby/DTrace/methods_duration.d -p pid. 벤치 마크 스크립트 시작 부분에 몇 초를 추가해야 할 수도 있으므로 두 번째 창에 입력 할 시간이 있습니다.

(메소드 카운트 및 객체 수집도 있습니다).

아직 초기 문제를 완벽하게 해결하지 못했지만 유용한 정보가 추가되었습니다. 한 가지 문제는 MRI와 DTrace를 (내가 아는 한) 사용할 수 없기 때문에 MRI와 MacRuby에서 실행을 비교할 수 없다는 것입니다.