2011-09-05 77 views
3

我想優化本機代碼。我試過使用Debug.startMethodTracing()和Debug.stopMethodTracing()。但它只分析java函數,不分析本機代碼。我們從java代碼執行的本地調用僅顯示那段時間,內部本地調用未顯示。我以調試模式構建本地庫,即使那樣我也無法分析本機代碼。無法分析Android本機代碼

在stackoverflow我得到了這些鏈接,但這些也沒有多大用處,請幫我分析本機代碼。我正在爲Android上的應用程序開發發佈手機。所以,我沒有訪問android源代碼。請指導我。

鏈接:
1)dmtracedump doesn't work, HELP!
2)Android native code profiling
3)http://developer.android.com/guide/developing/debugging/debugging-tracing.html

d:\仿形> dmtracedump -o d:\仿形\ EvrcEncoderProfiling.trace
ERROR:無法讀取42170個字節從跟蹤文件
d:\仿形> traceview d:\仿形\ EvrcEncoderProfiling.trace
d:\仿形>

Traceview正在工作,但dmtracedump無法正常工作。

感謝&問候,
SSuman185

+0

請考慮這個線程作爲延續,因爲在評論部分我不能格式化文本我打開了新的線程。如果我更新了上面的線程,那麼延續將會錯過,他回答[點擊此處繼續android-ndk-profiler](http://stackoverflow.com/questions/7316399/android-ndk-profiler-no-maps-發現) – Suman

回答

3

But its profiling only java functions, its not profiling the native code.

正確的。這就是Traceview所能做的,因爲跟蹤文件只有Dalvik信息。

Traceview is working but dmtracedump is not working.

雖然我不知道爲什麼它不適合你的工作(我從來沒有使用過),它不會有任何更深入地瞭解您的本機代碼比將Traceview。你需要用老式的方式來分析你的本地代碼:收集和記錄時間。

+0

我假設你已經嘗試了這種[老式的方式](http://stackoverflow.com/questions/375913/what-c​​an-i-use-to-profile-c-code-in-linux/ 378024#378024)。 –

+0

實際上,我在網上獲得了有關android-ndk-profiler的信息,但沒有幫助。每當我收到錯誤,找不到地圖,無法追蹤本地代碼。 – Suman