Documentation Source Text

Check-in [eeaadb7da2]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the "small footprint" docs to put the size at 600KB instead of 500KB, as we have crossed that threshold with the addition of window functions.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: eeaadb7da2fe79ba1810451bbb156fc92d666dfa578e6a6d18045e95a681d42f
User & Date: drh 2018-07-07 17:44:20.064
Context
2018-07-11
11:08
Update the keyword list with all of the new keywords added for UPSERT and window functions. (check-in: 824b38d28e user: drh tags: trunk)
2018-07-07
17:44
Update the "small footprint" docs to put the size at 600KB instead of 500KB, as we have crossed that threshold with the addition of window functions. (check-in: eeaadb7da2 user: drh tags: trunk)
17:36
Minor changes to the windows function documentation. (check-in: ff1e1e885a user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/about.in.
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
an [Application File Format].  SQLite database files are a
[recommended storage format] by the US Library of Congress.
Think of SQLite not as a replacement for 
[http://www.oracle.com/database/index.html|Oracle] but
as a replacement for [http://man.he.net/man3/fopen|fopen()]</p>

<p>SQLite is a compact library.
With all features enabled, the [library size] can be less than 500KiB,
depending on the target platform and compiler optimization settings.
(64-bit code is larger.  And some compiler optimizations
such as aggressive function inlining and loop unrolling can cause the
object code to be much larger.)
There is a tradeoff between memory usage and speed.  
SQLite generally runs faster the more memory
you give it.  Nevertheless, performance is usually quite good even







|







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
an [Application File Format].  SQLite database files are a
[recommended storage format] by the US Library of Congress.
Think of SQLite not as a replacement for 
[http://www.oracle.com/database/index.html|Oracle] but
as a replacement for [http://man.he.net/man3/fopen|fopen()]</p>

<p>SQLite is a compact library.
With all features enabled, the [library size] can be less than 600KiB,
depending on the target platform and compiler optimization settings.
(64-bit code is larger.  And some compiler optimizations
such as aggressive function inlining and loop unrolling can cause the
object code to be much larger.)
There is a tradeoff between memory usage and speed.  
SQLite generally runs faster the more memory
you give it.  Nevertheless, performance is usually quite good even
Changes to pages/features.in.
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    (<a href="omitted.html">Omitted features</a>)</li>
<li>A complete database is stored in a 
    <a href="onefile.html">single cross-platform disk file</a>.
    Great for use as an [application file format].</li>
<li>Supports terabyte-sized databases and gigabyte-sized strings
    and blobs.  (See <a href="limits.html">limits.html</a>.)
<li>Small code [footprint]: 
    less than 500KiB fully configured or much less
    with optional features omitted.</li>
<li>Simple, easy to use <a href="cintro.html">API</a>.</li>
<li>Fast:  In some cases, SQLite is 
    [faster than the filesystem|faster than direct filesystem I/O]
<li>Written in ANSI-C.  <a href="tclsqlite.html">TCL bindings</a> included.
    Bindings for dozens of other languages available separately.</li>
<li>Well-commented source code with







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    (<a href="omitted.html">Omitted features</a>)</li>
<li>A complete database is stored in a 
    <a href="onefile.html">single cross-platform disk file</a>.
    Great for use as an [application file format].</li>
<li>Supports terabyte-sized databases and gigabyte-sized strings
    and blobs.  (See <a href="limits.html">limits.html</a>.)
<li>Small code [footprint]: 
    less than 600KiB fully configured or much less
    with optional features omitted.</li>
<li>Simple, easy to use <a href="cintro.html">API</a>.</li>
<li>Fast:  In some cases, SQLite is 
    [faster than the filesystem|faster than direct filesystem I/O]
<li>Written in ANSI-C.  <a href="tclsqlite.html">TCL bindings</a> included.
    Bindings for dozens of other languages available separately.</li>
<li>Well-commented source code with
Changes to pages/footprint.in.
26
27
28
29
30
31
32
33


34
35
36
37
38
39
40

<li><p>
GCC-7 generates binaries that are smaller and faster than GCC-5, though
the difference is not that great.

<li><p>
Compiling with GCC and -Os results in a binary that is slightly less 
than 500KB in size.



<li><p>
The only significant design decision that developers need to make is
whether to use -Os (optimize for size) or -O6 (optimize for speed).
The -O6 setting makes binaries that run about 2% or 3% faster, but which
are also 66% larger.  The performance here is measured by counting CPU
cycles using cachegrind.  I-cache misses are not considered in the







|
>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

<li><p>
GCC-7 generates binaries that are smaller and faster than GCC-5, though
the difference is not that great.

<li><p>
Compiling with GCC and -Os results in a binary that is slightly less 
than 500KB in size. (Update 2018-07-07: Due to the addition of new
features such as [UPSERT] and [window functions], the library footprint
is now slightly larger than 500KB.)

<li><p>
The only significant design decision that developers need to make is
whether to use -Os (optimize for size) or -O6 (optimize for speed).
The -O6 setting makes binaries that run about 2% or 3% faster, but which
are also 66% larger.  The performance here is measured by counting CPU
cycles using cachegrind.  I-cache misses are not considered in the