OSDN Git Service

Optimize fillWindow to improve reverse-seek performance.
authorJeff Brown <jeffbrown@google.com>
Thu, 27 Oct 2011 21:52:28 +0000 (14:52 -0700)
committerJeff Brown <jeffbrown@google.com>
Fri, 28 Oct 2011 08:46:18 +0000 (01:46 -0700)
commit20b3da9a01f73cf60f39e837ee5bef73ce078b7c
tree1d90b398fb949e1e316b658c863f2f87f7814afb
parent991ddd13a6d9f89db043eadfac1ba4c2c651f128
Optimize fillWindow to improve reverse-seek performance.
Bug: 5520301

When an application requests a row from a SQLiteCursor that
is not in the window, instead of filling from the requested
row position onwards, fill from a little bit ahead of the
requested row position.

This fixes a problem with applications that seek backwards
in large cursor windows.  Previously the application could
end up refilling the window every time it moved back
one position.

We try to fill about 1/3 before the requested position and
2/3 after which substantially improves scrolling responsiveness
when the list is bound to a data set that does not fit
entirely within one cursor window.

Change-Id: I168ff1d3aed1a41ac96267be34a026c108590e52
libs/binder/CursorWindow.cpp