Congratulations. This is a big milestone.

The single "sqlite3.c" source file release will certainly simplify 
embeddeding.

I guess the single translation unit thing is why GCC is busy working 
on link-time optimization (and why LLVM is faster in some cases).

--- [EMAIL PROTECTED] wrote:
> When you do "PRAGMA locking_mode=EXCLUSIVE", it means that
> SQLite will not release its EXCLUSIVE lock after its does its
> first write until you either close the connection or you
> do "PRAGMA locking_mode=NORMAL".  There are various optimizations
> that can occur when this is the case.
> 
> There is a plot of runtime of CVSHEAD versus version 3.3.13
> at
> 
>    http://www.sqlite.org/relspeed-20070326-ephemeral.gif
> 
> (As the name implies, this GIF will ephemeral.  Do not expect it
> to be there for more than a few days.)  Any value less than
> 1.0 means that performance has improved.  The test script is
> 
>    http://www.sqlite.org/cvstrac/fileview?f=sqlite/test/speed2.test
> 
> The orange bars show the relative performance of CVSHEAD with
> no special build options.  1.0 is the performance of version 3.3.13
> so anything less than 1.0 is an improvement.  The red bars show
> CVSHEAD with all the source files concatenated into a single big
> file and compiled as a single translation unit.  Compiling this
> way allows the compiler to do additional optimizations that result
> in improved performance.  The blue bars are the same sqlite-as-one-
> great-big-source-file optimization but with -DSQLITE_OMIT_XFER_OPT=1
> defined.
> 
> The tests are cumulative.  The database that results from one test
> feeds into the next.  The two "insert" tests at the top both
> consists of a large number (50000) of distinct INSERT statements.
> These tests are dominated by the parser and code generator and
> all of our recent work has been directed toward optimizing the
> backend so these tests do not show any improvement.  You can see
> that the new "XFER Optimizer" actually results in a slight
> performance drop since for each INSERT statement, the parser has
> to check to see if the XFER optimization applies.  (It never
> does in the first two tests.)
> 
> The interface between the B-Tree layer and the Pager layer has
> been refactored.  This refactoring prevented the compiler from
> doing certain function inlinings that it was able to do before,
> resulting in a performance drop for the orange bar.  But when 
> the pager and b-tree modules were combined into a single source
> file, the function inlining was able to occur again and so
> performance improved.
> 
> Tests select4 through select6 are about twice as fast.  We believe
> this is because the pager cache is no longer flushed unless the
> database is changed by another process.
> 
> VACUUM is much faster due to the XFER optimization.  Furthermore,
> VACUUM with the XFER optimization greatly reduces th database
> fragmentation.  This is (we believe) why performance is so much
> better in the later tests for the orange and red bars.  Operations
> on a defragmented database file go much faster.
> 
> Changes have been made to the b-tree and pager layers that omit
> certain unnecessary writes to the database file and to the rollback
> journal.  This reduction in disk I/O results in the 20x performance
> improvements seen for tests delete1 and drop1.
> 
> CVSHEAD passes the "quick" regression tests.  But we know there
> are still issues with the code.  CVSHEAD is not currently
> recommended for use in shipping products, but it is adequate
> for development work, we believe.
> 
> In past releases of SQLite, we have made available a ZIP archive
> with preprocessed source files.  In the future, we may change this
> so that instead of a ZIP archive full of individual files, we
> ship a single "sqlite3.c" source file which contains all of the
> source file in a single translation unit.  By this mode of
> delivery, we hope to enable users to see the performance improvements
> we are seeing in our red bars.



 
____________________________________________________________________________________
Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos.
http://autos.yahoo.com/new_cars.html 

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to