{"push_id":1069739053,"size":1,"distinct_size":1,"ref":"refs/heads/mm6.0-nexus","head":"fc204e889ae119fce586bbcc3e0b2a778e2f0910","before":"24f6825ce2c3ad1122d7dbcb050aa47199253c72","commits":[{"sha":"fc204e889ae119fce586bbcc3e0b2a778e2f0910","author":{"email":"b0dfeb3108846113dedbbe58672972c075a809fc@sonymobile.com","name":"Snild Dolkow"},"message":"[2/4] sqlite query perf: try to reuse in-flight statements\n\nIf we avoid resetting statements, we may be able to continue where we\nleft off last time. This saves us the work of repeating the whole query\nover and over again when we just want to fill sequential windows.\n\nHowever, leaving statements open like that (\"busy\", in sqlite terms)\nmay cause some queries to return SQLITE_LOCKED (example: DROP TABLE).\nSo, we have to add some logic to reset any busy statements whenever\na query fails with that error. This meant that we had to be able to\ncall up to Java from native, which forced me to change a few methods\nfrom static to instance, which makes the patch look bigger than it\nreally is.\n\nLeaving statements open also keeps sqlite's internal query state,\nincreasing memory usage. We'll mitigate this in the next patch.\n\nMy benchmark - moveToNext() through a 25000-row result set, with the\nwindow being able to fit around 6700 - improved from 1350ms to 750ms.\n\nChange-Id: I03af49d8b1bade3e63c00f3fe5ef3259989c292c","distinct":true,"url":"https://api.github.com/repos/fraz14/frameworks_base/commits/fc204e889ae119fce586bbcc3e0b2a778e2f0910"}]}