Nope, I ran the tests both in Parallels and rebooting directly into boot camp (basically native windows), and had essentially identical performance (+/- 2%, within noise level differences). It also echoes the performance difference I'd been seeing on the database side just watching the real app run on iOS and on my other non-Apple native windows box. Interesting little find, nonetheless, thanks for that. :)
To Alex: Unfortunately, Windows is a core platform for us. We can't really just tell them to buzz off, so it's either figure out how to improve SQLite performance or switch DB engines, at least on that platform... -David ________________________________________ From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of Black, Michael (IS) [michael.bla...@ngc.com] Sent: Friday, November 30, 2012 9:46 AM To: General Discussion of SQLite Database Subject: Re: [sqlite] Windows (slow) vs. iOS/OSX (fast) Performance Could this be your problem? http://mattgadient.com/2011/02/18/mac-os-x-slow-for-10-15-minutes-after-boot-the-fix/ Michael D. Black Senior Scientist Advanced Analytics Directorate Advanced GEOINT Solutions Operating Unit Northrop Grumman Information Systems ________________________________________ From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of David de Regt [dav...@mylollc.com] Sent: Friday, November 30, 2012 11:41 AM To: General Discussion of SQLite Database Subject: EXT :[sqlite] Windows (slow) vs. iOS/OSX (fast) Performance Hey all. I've been struggling with a basic perf issue running the same code on Windows vs. iOS and OSX. Basic query set: CREATE TABLE test (col1 int, col2 text); [loop 500 times]: INSERT INTO TEST (col1,col2) VALUES (4,'test4') I'm coding this using the default C amalgamation release and using prepare/etc. on all platforms in the exact same way (same very simple DB-access class I made). I realize that using a transaction around this would vastly improve perf, but given the atomic nature of the app that this test is simulating, it won't work to wrap it into transactions, so my goal is to improve the atomic performance. These are all being run on the same Macbook Pro, with an SSD, running Windows via boot camp, OSX natively, and iOS via the iOS simulator: With defaults (pragma sync = on, default journal_mode): Windows: 2500ms iOS: 300ms OSX: 280ms With pragma sync = off, journal_mode = memory: Windows: 62ms iOS: 25ms OSX: 25ms Turning off sync doesn't make me feel warm and fuzzy about our lost-power scenario, so with sync on, it seems like something must be fishy for it to be ~8-9x slower than the other platforms. Is there something ridiculous about the windows file system performance that hoses sqlite's open/read/write/close transaction cycle? Is there anything I can do, or just accept it and move on? With how that scales up, we may need to move to something like using embedded MySQL or LocalDB on Windows to get the same performance as we see with SQLite on other platforms, which seems quite ridiculous. Thanks! -David _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users