Improve the slow query instrumentation.
On user-debug and eng builds, you can set the "db.log.slow_query_threshold" system property to queries that take longer than the specified number of milliseconds. Set it to 0 to log all queries. This property has been around for a while but it was implemented poorly. In particular, it *changed* the behavior of the query by calling getCount() while holding the Db connection. In normal operation, the query will not actually run until later. By putting the timing logic into fillWindow() instead, we ensure that we only measure queries that actually ran. We also capture cases where the cursor window gets filled multiple times. Bug: 5520301 Change-Id: I174f5e1ea15831a1d22a36e9a804d7755f230b38
This commit is contained in:
parent
21f0be6b0d
commit
27a852b620
@ -211,7 +211,7 @@ uint32_t CursorWindow::alloc(size_t size, bool aligned) {
|
||||
uint32_t offset = mHeader->freeOffset + padding;
|
||||
uint32_t nextFreeOffset = offset + size;
|
||||
if (nextFreeOffset > mSize) {
|
||||
LOGE("Window is full: requested allocation %d bytes, "
|
||||
LOGW("Window is full: requested allocation %d bytes, "
|
||||
"free space %d bytes, window size %d bytes",
|
||||
size, freeSpace(), mSize);
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user