1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
4
<title>SQLite Library Footprint</title>
5
<style type="text/css">
8
font-family: Verdana, sans-serif;
13
a:visited { color: #734559 }
15
.logo { position:absolute; margin:3px; }
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
32
.toolbar a:visited { color: white; }
33
.toolbar a:hover { color: #044a64; background: white; }
35
.content { margin: 5%; }
36
.content dt { font-weight:bold; }
37
.content dd { margin-bottom: 25px; margin-left:20%; }
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
41
.se { background: url(images/se.gif) 100% 100% no-repeat #044a64}
42
.sw { background: url(images/sw.gif) 0% 100% no-repeat }
43
.ne { background: url(images/ne.gif) 100% 0% no-repeat }
44
.nw { background: url(images/nw.gif) 0% 0% no-repeat }
46
/* Things for "fancyformat" documents start here. */
47
.fancy img+p {font-style:italic}
48
.fancy .codeblock i { color: darkblue; }
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
50
.fancy h2 { margin-left: 10px }
51
.fancy h3 { margin-left: 20px }
52
.fancy h4 { margin-left: 30px }
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
55
.fancy #toc a { color: darkblue ; text-decoration: none }
56
.fancy .todo { color: #AA3333 ; font-style : italic }
57
.fancy .todo:before { content: 'TODO:' }
58
.fancy p.todo { border: solid #AA3333 1px; padding: 1ex }
59
.fancy img { display:block; }
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
62
.fancy li p { margin: 1em 0 }
63
/* End of "fancyformat" specific rules. */
69
<div><!-- container div to satisfy validator -->
72
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite Logo"
74
<div><!-- IE hack to prevent disappearing logo--></div>
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
77
<table width=100% style="clear:both"><tr><td>
78
<div class="se"><div class="sw"><div class="ne"><div class="nw">
79
<table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
82
<a href="about.html">About</a>
83
<a href="sitemap.html">Sitemap</a>
84
<a href="docs.html">Documentation</a>
85
<a href="download.html">Download</a>
86
<a href="copyright.html">License</a>
87
<a href="news.html">News</a>
88
<a href="support.html">Support</a>
91
gMsg = "Search SQLite Docs..."
92
function entersearch() {
93
var q = document.getElementById("q");
94
if( q.value == gMsg ) { q.value = "" }
95
q.style.color = "black"
96
q.style.fontStyle = "normal"
98
function leavesearch() {
99
var q = document.getElementById("q");
100
if( q.value == "" ) {
102
q.style.color = "#044a64"
103
q.style.fontStyle = "italic"
108
<div style="padding:0 1em 0px 0;white-space:nowrap">
109
<form name=f method="GET" action="http://www.sqlite.org/search">
110
<input id=q name=q type=text
111
onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
112
<input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
116
</div></div></div></div>
118
<div class=startsearch></div>
124
<h2 align="center">Size Of The SQLite Library</h2>
127
The code space used by the SQLite library depends heavily on
128
the target platform, what
129
compiler and optimization options are used to generate object code,
130
and which optional features of SQLite are included or omitted from
132
This page provides examples of what to expect.
136
SQLite version 3.7.8 is less than 350KiB in size on x86 with -Os and
137
less than 400KiB (409KB) on x64.
138
The -O2 and -O3 builds are larger, presumably due to loop
139
unrolling and function inlining.
148
<li> SQLite version 3.7.8
152
<table border="1" cellpadding="5" cellspacing="0">
154
<th>Optimization<br>Setting<th>Size<br>(bytes)<th>Run-time<br>(Relative to -O0)
157
<td align="center"> -O0
158
<td align="right">529765
159
<td align="center">1.00
162
<td align="center"> -O1
163
<td align="right">397204
164
<td align="center">0.71
167
<td align="center"> -Os
168
<td align="right">333059
169
<td align="center">0.73
172
<td align="center"> -O2
173
<td align="right">418161
174
<td align="center">0.68
177
<td align="center"> -O3
178
<td align="right">828602
179
<td align="center">0.66
189
<li> SQLite version 3.7.8
193
<table border="1" cellpadding="5" cellspacing="0">
195
<th>Optimization<br>Setting<th>Size<br>(bytes)<th>Run-time<br>(Relative to -O0)
198
<td align="center"> -O0
199
<td align="right">625841
200
<td align="center">1.00
203
<td align="center"> -O1
204
<td align="right">455072
205
<td align="center">0.62
208
<td align="center"> -Os
209
<td align="right">404201
210
<td align="center">0.59
213
<td align="center"> -O2
214
<td align="right">499543
215
<td align="center">0.53
218
<td align="center"> -O3
219
<td align="right">678465
220
<td align="center">0.54
229
<li> Mac OS 10.7.1 (Lion)
230
<li> GCC 4.2.1 + LLVM
231
<li> SQLite version 3.7.8
235
<table border="1" cellpadding="5" cellspacing="0">
237
<th>Optimization<br>Setting<th>Size<br>(bytes)<th>Run-time<br>(Relative to -O0)
240
<td align="center"> -O0
241
<td align="right">806598
242
<td align="center">1.00
245
<td align="center"> -O1
246
<td align="right">508500
247
<td align="center">0.61
250
<td align="center"> -Os
251
<td align="right">481816
252
<td align="center">0.57
255
<td align="center"> -O2
256
<td align="right">614346
257
<td align="center">0.55
260
<td align="center"> -O3
261
<td align="right">661622
262
<td align="center">0.55
267
<a name="relfootprint"></a>
271
<h2 align="center">The Effect Of Compile-Time Options On Library Size</h2>
273
<p>The next study shows the effect that various <a href="compile.html">compile-time options</a> for
274
SQLite have on the size of the resulting library file. The following
275
size figures are computed with an early beta of SQLite version 3.7.9
276
using GCC version 4.6.1 for X86_64 running on Ubuntu with the -Os option.
277
Actual sizes and size differences may vary by compiler and system.</p>
279
<table border="1" cellpadding=4 cellspacing=0>
281
<th valign="bottom"><a href="compile.html">Compile-Time Option</a></th>
282
<th valign="bottom">Library<br>Footprint</th>
283
<th valign="bottom">Difference<br>From<br>Baseline</th>
284
<th valign="bottom">Percentage<br>Difference</th>
288
<td>All OMIT options</td>
289
<td align="right">248363</td>
290
<td align="right">-155714</td>
291
<td align="right">-38.536%</td>
295
<td><a href="compile.html#omit_trigger">SQLITE_OMIT_TRIGGER</a></td>
296
<td align="right">382038</td>
297
<td align="right">-22039</td>
298
<td align="right"> -5.454%</td>
302
<td><a href="compile.html#omit_wal">SQLITE_OMIT_WAL</a></td>
303
<td align="right">388281</td>
304
<td align="right">-15796</td>
305
<td align="right"> -3.909%</td>
309
<td><a href="compile.html#omit_floating_point">SQLITE_OMIT_FLOATING_POINT</a></td>
310
<td align="right">390469</td>
311
<td align="right">-13608</td>
312
<td align="right"> -3.368%</td>
316
<td><a href="compile.html#omit_virtualtable">SQLITE_OMIT_VIRTUALTABLE</a></td>
317
<td align="right">391156</td>
318
<td align="right">-12921</td>
319
<td align="right"> -3.198%</td>
323
<td><a href="compile.html#omit_pragma">SQLITE_OMIT_PRAGMA</a></td>
324
<td align="right">391292</td>
325
<td align="right">-12785</td>
326
<td align="right"> -3.164%</td>
330
<td><a href="compile.html#omit_foreign_key">SQLITE_OMIT_FOREIGN_KEY</a></td>
331
<td align="right">393555</td>
332
<td align="right">-10522</td>
333
<td align="right"> -2.604%</td>
337
<td><a href="compile.html#omit_autovacuum">SQLITE_OMIT_AUTOVACUUM</a></td>
338
<td align="right">395589</td>
339
<td align="right">-8488</td>
340
<td align="right"> -2.101%</td>
344
<td><a href="compile.html#omit_subquery">SQLITE_OMIT_SUBQUERY</a></td>
345
<td align="right">396313</td>
346
<td align="right">-7764</td>
347
<td align="right"> -1.921%</td>
351
<td><a href="compile.html#omit_compound_select">SQLITE_OMIT_COMPOUND_SELECT</a></td>
352
<td align="right">396810</td>
353
<td align="right">-7267</td>
354
<td align="right"> -1.798%</td>
358
<td><a href="compile.html#omit_explain">SQLITE_OMIT_EXPLAIN</a></td>
359
<td align="right">397011</td>
360
<td align="right">-7066</td>
361
<td align="right"> -1.749%</td>
365
<td><a href="compile.html#omit_datetime_funcs">SQLITE_OMIT_DATETIME_FUNCS</a></td>
366
<td align="right">397179</td>
367
<td align="right">-6898</td>
368
<td align="right"> -1.707%</td>
372
<td><a href="compile.html#omit_integrity_check">SQLITE_OMIT_INTEGRITY_CHECK</a></td>
373
<td align="right">397438</td>
374
<td align="right">-6639</td>
375
<td align="right"> -1.643%</td>
379
<td><a href="compile.html#omit_attach">SQLITE_OMIT_ATTACH</a></td>
380
<td align="right">397951</td>
381
<td align="right">-6126</td>
382
<td align="right"> -1.516%</td>
386
<td><a href="compile.html#omit_altertable">SQLITE_OMIT_ALTERTABLE</a></td>
387
<td align="right">398344</td>
388
<td align="right">-5733</td>
389
<td align="right"> -1.419%</td>
393
<td><a href="compile.html#omit_utf16">SQLITE_OMIT_UTF16</a></td>
394
<td align="right">399069</td>
395
<td align="right">-5008</td>
396
<td align="right"> -1.239%</td>
400
<td><a href="compile.html#omit_shared_cache">SQLITE_OMIT_SHARED_CACHE</a></td>
401
<td align="right">399249</td>
402
<td align="right">-4828</td>
403
<td align="right"> -1.195%</td>
407
<td><a href="compile.html#omit_incrblob">SQLITE_OMIT_INCRBLOB</a></td>
408
<td align="right">399889</td>
409
<td align="right">-4188</td>
410
<td align="right"> -1.036%</td>
414
<td><a href="compile.html#omit_analyze">SQLITE_OMIT_ANALYZE</a></td>
415
<td align="right">400207</td>
416
<td align="right">-3870</td>
417
<td align="right"> -0.958%</td>
421
<td><a href="compile.html#omit_authorization">SQLITE_OMIT_AUTHORIZATION</a></td>
422
<td align="right">401002</td>
423
<td align="right">-3075</td>
424
<td align="right"> -0.761%</td>
428
<td><a href="compile.html#omit_vacuum">SQLITE_OMIT_VACUUM</a></td>
429
<td align="right">401026</td>
430
<td align="right">-3051</td>
431
<td align="right"> -0.755%</td>
435
<td><a href="compile.html#omit_pager_pragmas">SQLITE_OMIT_PAGER_PRAGMAS</a></td>
436
<td align="right">401168</td>
437
<td align="right">-2909</td>
438
<td align="right"> -0.720%</td>
442
<td><a href="compile.html#omit_or_optimization">SQLITE_OMIT_OR_OPTIMIZATION</a></td>
443
<td align="right">401374</td>
444
<td align="right">-2703</td>
445
<td align="right"> -0.669%</td>
449
<td><a href="compile.html#omit_view">SQLITE_OMIT_VIEW</a></td>
450
<td align="right">401500</td>
451
<td align="right">-2577</td>
452
<td align="right"> -0.638%</td>
456
<td><a href="compile.html#omit_builtin_test">SQLITE_OMIT_BUILTIN_TEST</a></td>
457
<td align="right">401711</td>
458
<td align="right">-2366</td>
459
<td align="right"> -0.586%</td>
463
<td><a href="compile.html#omit_xfer_opt">SQLITE_OMIT_XFER_OPT</a></td>
464
<td align="right">402052</td>
465
<td align="right">-2025</td>
466
<td align="right"> -0.501%</td>
470
<td><a href="compile.html#omit_autoincrement">SQLITE_OMIT_AUTOINCREMENT</a></td>
471
<td align="right">402098</td>
472
<td align="right">-1979</td>
473
<td align="right"> -0.490%</td>
477
<td><a href="compile.html#omit_schema_pragmas">SQLITE_OMIT_SCHEMA_PRAGMAS</a></td>
478
<td align="right">402312</td>
479
<td align="right">-1765</td>
480
<td align="right"> -0.437%</td>
484
<td><a href="compile.html#omit_trace">SQLITE_OMIT_TRACE</a></td>
485
<td align="right">402369</td>
486
<td align="right">-1708</td>
487
<td align="right"> -0.423%</td>
491
<td><a href="compile.html#omit_load_extension">SQLITE_OMIT_LOAD_EXTENSION</a></td>
492
<td align="right">402611</td>
493
<td align="right">-1466</td>
494
<td align="right"> -0.363%</td>
498
<td><a href="compile.html#omit_automatic_index">SQLITE_OMIT_AUTOMATIC_INDEX</a></td>
499
<td align="right">402685</td>
500
<td align="right">-1392</td>
501
<td align="right"> -0.344%</td>
505
<td><a href="compile.html#omit_like_optimization">SQLITE_OMIT_LIKE_OPTIMIZATION</a></td>
506
<td align="right">402928</td>
507
<td align="right">-1149</td>
508
<td align="right"> -0.284%</td>
512
<td><a href="compile.html#omit_reindex">SQLITE_OMIT_REINDEX</a></td>
513
<td align="right">402975</td>
514
<td align="right">-1102</td>
515
<td align="right"> -0.273%</td>
519
<td><a href="compile.html#omit_get_table">SQLITE_OMIT_GET_TABLE</a></td>
520
<td align="right">402999</td>
521
<td align="right">-1078</td>
522
<td align="right"> -0.267%</td>
526
<td><a href="compile.html#omit_complete">SQLITE_OMIT_COMPLETE</a></td>
527
<td align="right">403135</td>
528
<td align="right">-942</td>
529
<td align="right"> -0.233%</td>
533
<td><a href="compile.html#omit_tempdb">SQLITE_OMIT_TEMPDB</a></td>
534
<td align="right">403200</td>
535
<td align="right">-877</td>
536
<td align="right"> -0.217%</td>
540
<td><a href="compile.html#omit_btreecount">SQLITE_OMIT_BTREECOUNT</a></td>
541
<td align="right">403301</td>
542
<td align="right">-776</td>
543
<td align="right"> -0.192%</td>
547
<td><a href="compile.html#omit_localtime">SQLITE_OMIT_LOCALTIME</a></td>
548
<td align="right">403307</td>
549
<td align="right">-770</td>
550
<td align="right"> -0.191%</td>
554
<td><a href="compile.html#omit_compileoption_diags">SQLITE_OMIT_COMPILEOPTION_DIAGS</a></td>
555
<td align="right">403309</td>
556
<td align="right">-768</td>
557
<td align="right"> -0.190%</td>
561
<td><a href="compile.html#omit_flag_pragmas">SQLITE_OMIT_FLAG_PRAGMAS</a></td>
562
<td align="right">403441</td>
563
<td align="right">-636</td>
564
<td align="right"> -0.157%</td>
568
<td><a href="compile.html#omit_quickbalance">SQLITE_OMIT_QUICKBALANCE</a></td>
569
<td align="right">403455</td>
570
<td align="right">-622</td>
571
<td align="right"> -0.154%</td>
575
<td><a href="compile.html#omit_cast">SQLITE_OMIT_CAST</a></td>
576
<td align="right">403457</td>
577
<td align="right">-620</td>
578
<td align="right"> -0.153%</td>
582
<td><a href="compile.html#omit_check">SQLITE_OMIT_CHECK</a></td>
583
<td align="right">403501</td>
584
<td align="right">-576</td>
585
<td align="right"> -0.143%</td>
589
<td><a href="compile.html#omit_memorydb">SQLITE_OMIT_MEMORYDB</a></td>
590
<td align="right">403555</td>
591
<td align="right">-522</td>
592
<td align="right"> -0.129%</td>
596
<td><a href="compile.html#omit_blob_literal">SQLITE_OMIT_BLOB_LITERAL</a></td>
597
<td align="right">403619</td>
598
<td align="right">-458</td>
599
<td align="right"> -0.113%</td>
603
<td><a href="compile.html#omit_schema_version_pragmas">SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS</a></td>
604
<td align="right">403748</td>
605
<td align="right">-329</td>
606
<td align="right"> -0.081%</td>
610
<td><a href="compile.html#omit_lookaside">SQLITE_OMIT_LOOKASIDE</a></td>
611
<td align="right">403753</td>
612
<td align="right">-324</td>
613
<td align="right"> -0.080%</td>
617
<td><a href="compile.html#omit_autoinit">SQLITE_OMIT_AUTOINIT</a></td>
618
<td align="right">403759</td>
619
<td align="right">-318</td>
620
<td align="right"> -0.079%</td>
624
<td><a href="compile.html#disable_dirsync">SQLITE_DISABLE_DIRSYNC</a></td>
625
<td align="right">403782</td>
626
<td align="right">-295</td>
627
<td align="right"> -0.073%</td>
631
<td><a href="compile.html#omit_decltype">SQLITE_OMIT_DECLTYPE</a></td>
632
<td align="right">403794</td>
633
<td align="right">-283</td>
634
<td align="right"> -0.070%</td>
638
<td><a href="compile.html#omit_deprecated">SQLITE_OMIT_DEPRECATED</a></td>
639
<td align="right">403794</td>
640
<td align="right">-283</td>
641
<td align="right"> -0.070%</td>
645
<td><a href="compile.html#omit_between_optimization">SQLITE_OMIT_BETWEEN_OPTIMIZATION</a></td>
646
<td align="right">403929</td>
647
<td align="right">-148</td>
648
<td align="right"> -0.037%</td>
652
<td><a href="compile.html#omit_progress_callback">SQLITE_OMIT_PROGRESS_CALLBACK</a></td>
653
<td align="right">403957</td>
654
<td align="right">-120</td>
655
<td align="right"> -0.030%</td>
659
<td><a href="compile.html#omit_truncate_optimization">SQLITE_OMIT_TRUNCATE_OPTIMIZATION</a></td>
660
<td align="right">403984</td>
661
<td align="right">-93</td>
662
<td align="right"> -0.023%</td>
666
<td><a href="compile.html#omit_tcl_variable">SQLITE_OMIT_TCL_VARIABLE</a></td>
667
<td align="right">404003</td>
668
<td align="right">-74</td>
669
<td align="right"> -0.018%</td>
673
<td>Baseline SQLite Library Size</td>
674
<td align="right">404077</td>
675
<td align="right">0</td>
676
<td align="right"> 0.000%</td>
680
<td><a href="compile.html#disable_lfs">SQLITE_DISABLE_LFS</a></td>
681
<td align="right">404105</td>
682
<td align="right">+28</td>
683
<td align="right"> +0.007%</td>
687
<td><a href="compile.html#enable_iotrace">SQLITE_ENABLE_IOTRACE</a></td>
688
<td align="right">404108</td>
689
<td align="right">+31</td>
690
<td align="right"> +0.008%</td>
694
<td><a href="compile.html#omit_autoreset">SQLITE_OMIT_AUTORESET</a></td>
695
<td align="right">404143</td>
696
<td align="right">+66</td>
697
<td align="right"> +0.016%</td>
701
<td><a href="compile.html#enable_memory_management">SQLITE_ENABLE_MEMORY_MANAGEMENT</a></td>
702
<td align="right">404348</td>
703
<td align="right">+271</td>
704
<td align="right"> +0.067%</td>
708
<td><a href="compile.html#enable_update_delete_limit">SQLITE_ENABLE_UPDATE_DELETE_LIMIT</a></td>
709
<td align="right">404780</td>
710
<td align="right">+703</td>
711
<td align="right"> +0.174%</td>
715
<td><a href="compile.html#enable_column_metadata">SQLITE_ENABLE_COLUMN_METADATA</a></td>
716
<td align="right">405198</td>
717
<td align="right">+1121</td>
718
<td align="right"> +0.277%</td>
722
<td><a href="compile.html#enable_unlock_notify">SQLITE_ENABLE_UNLOCK_NOTIFY</a></td>
723
<td align="right">405371</td>
724
<td align="right">+1294</td>
725
<td align="right"> +0.320%</td>
729
<td><a href="compile.html#enable_atomic_write">SQLITE_ENABLE_ATOMIC_WRITE</a></td>
730
<td align="right">405426</td>
731
<td align="right">+1349</td>
732
<td align="right"> +0.334%</td>
736
<td><a href="compile.html#enable_memsys5">SQLITE_ENABLE_MEMSYS5</a></td>
737
<td align="right">406290</td>
738
<td align="right">+2213</td>
739
<td align="right"> +0.548%</td>
743
<td><a href="compile.html#enable_memsys3">SQLITE_ENABLE_MEMSYS3</a></td>
744
<td align="right">406927</td>
745
<td align="right">+2850</td>
746
<td align="right"> +0.705%</td>
750
<td><a href="compile.html#omit_wsd">SQLITE_OMIT_WSD</a></td>
751
<td align="right">408536</td>
752
<td align="right">+4459</td>
753
<td align="right"> +1.104%</td>
757
<td><a href="compile.html#enable_stat3">SQLITE_ENABLE_STAT3</a></td>
758
<td align="right">410352</td>
759
<td align="right">+6275</td>
760
<td align="right"> +1.553%</td>
764
<td><a href="compile.html#enable_rtree">SQLITE_ENABLE_RTREE</a></td>
765
<td align="right">422554</td>
766
<td align="right">+18477</td>
767
<td align="right"> +4.573%</td>
771
<td><a href="compile.html#enable_fts3">SQLITE_ENABLE_FTS3</a></td>
772
<td align="right">467173</td>
773
<td align="right">+63096</td>
774
<td align="right">+15.615%</td>
778
<td><a href="compile.html#enable_fts4">SQLITE_ENABLE_FTS4</a></td>
779
<td align="right">467185</td>
780
<td align="right">+63108</td>
781
<td align="right">+15.618%</td>