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

Reply via email to