2012-10-26 32 views
2

當我們執行一批數據庫更新時,我們試圖在應用中追蹤性能問題。在Eclipse中使用Android DDMS Profiler似乎只顯示在java代碼中花費的CPU時間,似乎不包括花在SQLite引擎上的時間。 這使得很難確定所有的掛鐘時間都花在哪裏。我怎樣才能找到在Android上的SQLite引擎上花了多少時間?

有什麼方法可以找出在各種SQLite引擎調用中花費了多長時間?

+0

你提到它是一批更新。你在交易中包裝這批嗎?如果你是,你不能只是在你開始/結束交易之前和之後記錄系統時間嗎?如果您沒有使用交易,如果您將其重構爲交易,聽起來就會看到巨大的收益。 – Rich

+0

是的,我們正在使用交易。我已經知道整個交易需要很長時間。我想知道我花了很多時間在做什麼,或許我可以改變一些事情,這樣我們就不會那麼做了。 這是一個龐大複雜的模式,具有大量複雜的更新。 – CasaDelGato

回答

0

Android的SQLite包裝不會公開幫助函數,例如progress callback;您可以做的最好的做法是使用時間戳功能手動包裝應用程序中的所有引擎調用。

+0

Bleh。我擔心我們不得不這樣做一些愚蠢的事情。 我已經猜出了導致延遲的方法,並發現了問題。 (我們有一段代碼單獨刪除大量記錄,而不是單個sql語句。) – CasaDelGato

相關問題