データベースを開いたり閉じたりするメソッドの実行時間を測定し、クエリと挿入を実行しています。これら 4 つの操作のそれぞれについて、基本的に、関連するステートメントの実行前後の時間を次のように取得します。
for(int i = 0; i < 500; i++) {
startTime = System.nanoTime();
long insertResult = db.insert(tableName, null, contentValues);
endTime = System.nanoTime();
if(insertResult > -1) {
generateNoteOnSD(fileName, (endTime - startTime));
}
}
インサートの場合:
- サンプルの最小実行時間は 13 ms (ミリ秒) です
- サンプルの最大実行時間は 537 ミリ秒です
- 結果セットの 50% 強 (500 回からの 259 回の「挿入」実行) は、15 ~ 20 ミリ秒です。
- 20 ミリ秒を超える値は、周波数が非常に低くなります (1、2、または 3)。
この種の操作がシステムによってどのように実行されるかについて、アイデア/方向性を教えてください。ストレージを永続化するための書き込み操作がどのように行われるのか、またそれがどのような要因に依存するのかはよくわかりません。上記の測定値を説明しようとするためにこれを知りたいです(同じ操作の実行時間の変動の理由)。
どんな助けでも大歓迎です。
オクタビオ