So here is another (this time real world) example using program I wrote which runs ~11 million initial connection packets against ~1800 firewall rules. It is written in Python and is inherently single-threaded. The only multithreading is SQLite3's internal threaded sorting.
SINGLETHREAD MEMSTAT ON Elapsed 04:06.960013 MPR=1.00 SINGLETHREAD MEMSTAT OFF Elapsed 04:04.882091 MPR=1.00 SERIALIZED MEMSTAT ON Elapsed 02:11.573467 MPR=1.87 SERIALIZED MEMSTAT OFF Elapsed 02:11.771519 MPR=1.93 MULTITHREADED MEMSTAT ON Elapsed 02:11.445074 MPR=1.87 MULTITHREADED MEMSTAT OFF Elapsed 02:10.753321 MPR=1.94 If you consider milliseconds to be performance significant for something that takes two minutes to run, then MULTITHREADED and MEMSTAT 0 wins both for elapsed time and MPR. However, IMHO, the only valid difference is that permitting internal multithreading makes a significant difference and I would leave the default of SERIALIZED and MEMSTAT ON since there is no significant advantage to changing/disabling those features. -- The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users