我正在测量打开和关闭数据库以及在其上执行查询和插入的方法的执行时间。对于这四个操作中的每一个,我基本上都会得到执行相关语句之前和之后的时间,如下所示:
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 ms
- 超过 50% 的结果集(来自 500 的 259 次“插入”执行)在 15 到 20 毫秒之间。
- 高于 20 ms 的值具有非常低的频率(1、2 或 3)。
有人可以给我一个关于系统如何执行此类操作的想法/方向吗?我真的不知道持久存储的写入操作是如何完成的,以及它取决于哪些因素。我想知道这一点以试图解释上述测量(为什么同一操作的执行时间会发生变化)。
非常感谢任何帮助。
奥克塔维奥