我正試圖優化我的Sqlite查詢的性能。如何找出Sqlite查詢的執行時間android
我想知道是否有任何方法可以找到每個Sqlite語句的執行時間,或者是否有任何工具可以查看Android SDK中的語句執行時間?
雖然我熟悉查詢計時器的.timer On
和.timer show
命令。
例子:
任何答案是真正的讚賞!
我正試圖優化我的Sqlite查詢的性能。如何找出Sqlite查詢的執行時間android
我想知道是否有任何方法可以找到每個Sqlite語句的執行時間,或者是否有任何工具可以查看Android SDK中的語句執行時間?
雖然我熟悉查詢計時器的.timer On
和.timer show
命令。
例子:
任何答案是真正的讚賞!
你可以在Java中做到這一點:
int startTime = System.currentTimeMillis();
... // Execute the query here
int executionTime = System.currentTimeMillis() - startTime; // This variable now contains the time taken by the query, in milliseconds
@Nemmondommegav這就是我正在尋找的...... thks – nitesh
您可以使用
System.currentTimeMillis();
在你的代碼知道時間參加了在運行查詢...
t1=System.currentTimeMillis();
//Execute query
t2=System.currentTimeMillis();
那麼(t1-t2)會給你時間差。 一旦我使android基準測試應用程序使用此方法來計算不同的智能手機基於sql查詢執行的執行情況。 希望它有助於。
而不是自己計算執行時間,讓sqlite爲你做。
從here:
/**
* Controls the printing of wall-clock time taken to execute SQL statements
* as they are executed.
*
* Enable using "adb shell setprop log.tag.SQLiteTime VERBOSE".
*/
public static final boolean DEBUG_SQL_TIME =
Log.isLoggable("SQLiteTime", Log.VERBOSE);
因此,爲了能夠執行時間跟蹤運行:
adb shell setprop log.tag.SQLiteTime VERBOSE
你將不得不重新啓動重裝新設置**您的應用程序。右後你會開始在logcat中看到這些日誌記錄:
12月2日至14日:27:00.457 11936-12137/osom.info.dbtest I /數據庫: elapsedTime4Sql | /數據/數據/ osom。 info.dbtest/databases/test.db | 1.000 ms | UPDATE TestTable SET key =? WHERE _id = 1
**有時候,這是不夠的,所以運行adb shell stop
和adb shell start
。
要停止打印這些日誌可以重新啓動設備(此屬性不會重新啓動之間持久化)或屬性設置爲一個更高的日誌級別,即:
adb shell setprop log.tag.SQLiteTime ERROR
檢查此鏈接http://stackoverflow.com/questions/6948270 /確定執行時間查詢在sqlite我認爲它回答你的問題。 –