SQLCipher for Android 3.3.0 vs 3.1.0 perfomance degradation


#1

I’ve just update lib from 3.1.0 version 3.3.0 and found that net.sqlcipher.database.SQLiteQuery#native_fill_window begin eat much more CPU on simple query then before update on the same database (generated by SQLCipher version 3.8.8.3 / Ubuntu). It’s just rised from less then 1% to 54% cpu time according DDMS profiler. Same statement, same database, same device (nexus 7 2013 5.1.1), but such great degradation.

Same thing with 3.2.0 release.

Am I missing something and migration requires additional steps besides *.so and sqlcipher.jar replacement?


#2

Hello @kivsiak

Were there any changes to the application and/or database schema/dataset between those two versions? Is this something you can replicate within the SQLCipher for Android test suite?


#3

No changed nothing. Just replace .so and .jar files with new version. Same database same device.
I’ll try to build new clean application and reproduce it on my database. Just thought i missing something and its common problem.

I cant replicate it with test suite. All tests there are passing.


#4

Hi @kivsiak

Here are the changes to SQLCipher for Android between 3.1.0 and 3.2.0, and the corresponding changes to SQLCipher core for that same version range. With the test suite, I was wondering if you could create a new test that replicates the behavior you are seeing?


#5

Just build new simple app using 3.3.1 on exact copy of same database. All queries are working as fast as should. Looks like problem is on my side. Outdated ORMLite branch may be. Need deeper investigation.

Thank for your assistance.


#6

Hello @kivsiak

Thank you for getting back to us, we are glad to hear you have isolated the issue to another library in this case. Take care!