Documentation Source Text

Hex Artifact Content
Login

Artifact 47a6a3e3fe406f4a121c6dbcb1e273c01ed0bdd5805f5bb6a3d5b044f707b9b8:


0000: 3c 74 69 74 6c 65 3e 53 51 4c 69 74 65 20 4c 69  <title>SQLite Li
0010: 62 72 61 72 79 20 46 6f 6f 74 70 72 69 6e 74 3c  brary Footprint<
0020: 2f 74 69 74 6c 65 3e 0a 3c 74 63 6c 3e 68 64 5f  /title>.<tcl>hd_
0030: 6b 65 79 77 6f 72 64 73 20 66 6f 6f 74 70 72 69  keywords footpri
0040: 6e 74 20 7b 6c 69 62 72 61 72 79 20 73 69 7a 65  nt {library size
0050: 7d 20 7b 72 65 6c 66 6f 6f 74 70 72 69 6e 74 7d  } {relfootprint}
0060: 3c 2f 74 63 6c 3e 0a 0a 0a 3c 68 31 20 61 6c 69  </tcl>...<h1 ali
0070: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 53 69 7a 65  gn="center">Size
0080: 20 4f 66 20 54 68 65 20 53 51 4c 69 74 65 20 4c   Of The SQLite L
0090: 69 62 72 61 72 79 3c 2f 68 31 3e 0a 0a 3c 70 3e  ibrary</h1>..<p>
00a0: 0a 54 68 65 20 63 6f 64 65 20 73 70 61 63 65 20  .The code space 
00b0: 75 73 65 64 20 62 79 20 74 68 65 20 53 51 4c 69  used by the SQLi
00c0: 74 65 20 6c 69 62 72 61 72 79 20 64 65 70 65 6e  te library depen
00d0: 64 73 20 6f 6e 20 74 68 65 20 74 61 72 67 65 74  ds on the target
00e0: 0a 70 6c 61 74 66 6f 72 6d 2c 20 74 68 65 20 63  .platform, the c
00f0: 6f 6d 70 69 6c 65 72 2c 20 61 6e 64 20 6f 70 74  ompiler, and opt
0100: 69 6d 69 7a 61 74 69 6f 6e 20 73 65 74 74 69 6e  imization settin
0110: 67 73 2e 20 20 54 68 65 73 65 20 76 61 72 69 61  gs.  These varia
0120: 62 6c 65 73 0a 61 6c 73 6f 20 61 66 66 65 63 74  bles.also affect
0130: 20 70 65 72 66 6f 72 6d 61 6e 63 65 2e 0a 3c 2f   performance..</
0140: 70 3e 0a 0a 3c 70 3e 0a 54 68 65 20 63 68 61 72  p>..<p>.The char
0150: 74 20 62 65 6c 6f 77 20 73 68 6f 77 73 20 74 68  t below shows th
0160: 65 20 72 65 6c 61 74 69 76 65 20 73 69 7a 65 20  e relative size 
0170: 61 6e 64 20 70 65 72 66 6f 72 6d 61 6e 63 65 20  and performance 
0180: 66 6f 72 20 53 51 4c 69 74 65 0a 61 73 20 6f 66  for SQLite.as of
0190: 20 32 30 31 37 2d 31 30 2d 30 38 20 66 6f 72 20   2017-10-08 for 
01a0: 76 61 72 69 6f 75 73 20 63 6f 6d 70 69 6c 65 72  various compiler
01b0: 73 20 61 6e 64 20 6f 70 74 69 6d 69 7a 61 74 69  s and optimizati
01c0: 6f 6e 20 73 65 74 74 69 6e 67 73 0a 61 73 20 74  on settings.as t
01d0: 65 73 74 65 64 20 6f 6e 20 55 62 75 6e 74 75 20  ested on Ubuntu 
01e0: 31 36 2e 30 34 2e 33 20 6f 6e 20 78 38 36 5f 36  16.04.3 on x86_6
01f0: 34 2e 20 20 47 65 6e 65 72 61 6c 20 6f 62 73 65  4.  General obse
0200: 72 76 61 74 69 6f 6e 73 3a 0a 0a 3c 6f 6c 3e 0a  rvations:..<ol>.
0210: 3c 6c 69 3e 3c 70 3e 0a 54 68 65 20 43 6c 61 6e  <li><p>.The Clan
0220: 67 2f 4c 4c 56 4d 20 63 6f 6d 70 69 6c 65 72 20  g/LLVM compiler 
0230: 69 73 20 6e 6f 74 20 63 6f 6d 70 65 74 69 74 69  is not competiti
0240: 76 65 20 77 69 74 68 20 47 43 43 2e 20 20 43 6c  ve with GCC.  Cl
0250: 61 6e 67 2d 67 65 6e 65 72 61 74 65 64 0a 62 69  ang-generated.bi
0260: 6e 61 72 69 65 73 20 61 72 65 20 63 6f 6e 73 69  naries are consi
0270: 73 74 65 6e 74 6c 79 20 6c 61 72 67 65 72 20 61  stently larger a
0280: 6e 64 20 73 6c 6f 77 65 72 20 74 68 61 6e 20 47  nd slower than G
0290: 43 43 2d 67 65 6e 65 72 61 74 65 64 20 62 69 6e  CC-generated bin
02a0: 61 72 69 65 73 2e 0a 0a 3c 6c 69 3e 3c 70 3e 0a  aries...<li><p>.
02b0: 50 72 6f 66 69 6c 65 20 67 75 69 64 65 64 20 6f  Profile guided o
02c0: 70 74 69 6d 69 7a 61 74 69 6f 6e 20 28 50 47 4f  ptimization (PGO
02d0: 29 20 69 73 20 6e 6f 74 20 68 65 6c 70 66 75 6c  ) is not helpful
02e0: 20 77 69 74 68 20 53 51 4c 69 74 65 2e 20 20 50   with SQLite.  P
02f0: 47 4f 20 72 65 73 75 6c 74 73 0a 69 6e 20 62 69  GO results.in bi
0300: 6e 61 72 69 65 73 20 74 68 61 74 20 61 72 65 20  naries that are 
0310: 61 62 6f 75 74 20 31 25 20 6c 61 72 67 65 72 20  about 1% larger 
0320: 61 6e 64 20 61 62 6f 75 74 20 30 2e 33 33 25 20  and about 0.33% 
0330: 73 6c 6f 77 65 72 2e 0a 0a 3c 6c 69 3e 3c 70 3e  slower...<li><p>
0340: 0a 47 43 43 2d 37 20 67 65 6e 65 72 61 74 65 73  .GCC-7 generates
0350: 20 62 69 6e 61 72 69 65 73 20 74 68 61 74 20 61   binaries that a
0360: 72 65 20 73 6d 61 6c 6c 65 72 20 61 6e 64 20 66  re smaller and f
0370: 61 73 74 65 72 20 74 68 61 6e 20 47 43 43 2d 35  aster than GCC-5
0380: 2c 20 74 68 6f 75 67 68 0a 74 68 65 20 64 69 66  , though.the dif
0390: 66 65 72 65 6e 63 65 20 69 73 20 6e 6f 74 20 74  ference is not t
03a0: 68 61 74 20 67 72 65 61 74 2e 0a 0a 3c 6c 69 3e  hat great...<li>
03b0: 3c 70 3e 0a 43 6f 6d 70 69 6c 69 6e 67 20 77 69  <p>.Compiling wi
03c0: 74 68 20 47 43 43 20 61 6e 64 20 2d 4f 73 20 72  th GCC and -Os r
03d0: 65 73 75 6c 74 73 20 69 6e 20 61 20 62 69 6e 61  esults in a bina
03e0: 72 79 20 74 68 61 74 20 69 73 20 73 6c 69 67 68  ry that is sligh
03f0: 74 6c 79 20 6c 65 73 73 20 0a 74 68 61 6e 20 35  tly less .than 5
0400: 30 30 4b 42 20 69 6e 20 73 69 7a 65 2e 20 28 55  00KB in size. (U
0410: 70 64 61 74 65 20 32 30 31 38 2d 30 37 2d 30 37  pdate 2018-07-07
0420: 3a 20 44 75 65 20 74 6f 20 74 68 65 20 61 64 64  : Due to the add
0430: 69 74 69 6f 6e 20 6f 66 20 6e 65 77 0a 66 65 61  ition of new.fea
0440: 74 75 72 65 73 20 73 75 63 68 20 61 73 20 5b 55  tures such as [U
0450: 50 53 45 52 54 5d 20 61 6e 64 20 5b 77 69 6e 64  PSERT] and [wind
0460: 6f 77 20 66 75 6e 63 74 69 6f 6e 73 5d 2c 20 74  ow functions], t
0470: 68 65 20 6c 69 62 72 61 72 79 20 66 6f 6f 74 70  he library footp
0480: 72 69 6e 74 0a 69 73 20 6e 6f 77 20 73 6c 69 67  rint.is now slig
0490: 68 74 6c 79 20 6c 61 72 67 65 72 20 74 68 61 6e  htly larger than
04a0: 20 35 30 30 4b 42 2e 29 0a 0a 3c 6c 69 3e 3c 70   500KB.)..<li><p
04b0: 3e 0a 54 68 65 20 6f 6e 6c 79 20 73 69 67 6e 69  >.The only signi
04c0: 66 69 63 61 6e 74 20 64 65 73 69 67 6e 20 64 65  ficant design de
04d0: 63 69 73 69 6f 6e 20 74 68 61 74 20 64 65 76 65  cision that deve
04e0: 6c 6f 70 65 72 73 20 6e 65 65 64 20 74 6f 20 6d  lopers need to m
04f0: 61 6b 65 20 69 73 0a 77 68 65 74 68 65 72 20 74  ake is.whether t
0500: 6f 20 75 73 65 20 2d 4f 73 20 28 6f 70 74 69 6d  o use -Os (optim
0510: 69 7a 65 20 66 6f 72 20 73 69 7a 65 29 20 6f 72  ize for size) or
0520: 20 2d 4f 36 20 28 6f 70 74 69 6d 69 7a 65 20 66   -O6 (optimize f
0530: 6f 72 20 73 70 65 65 64 29 2e 0a 54 68 65 20 2d  or speed)..The -
0540: 4f 36 20 73 65 74 74 69 6e 67 20 6d 61 6b 65 73  O6 setting makes
0550: 20 62 69 6e 61 72 69 65 73 20 74 68 61 74 20 72   binaries that r
0560: 75 6e 20 61 62 6f 75 74 20 32 25 20 6f 72 20 33  un about 2% or 3
0570: 25 20 66 61 73 74 65 72 2c 20 62 75 74 20 77 68  % faster, but wh
0580: 69 63 68 0a 61 72 65 20 61 6c 73 6f 20 36 36 25  ich.are also 66%
0590: 20 6c 61 72 67 65 72 2e 20 20 54 68 65 20 70 65   larger.  The pe
05a0: 72 66 6f 72 6d 61 6e 63 65 20 68 65 72 65 20 69  rformance here i
05b0: 73 20 6d 65 61 73 75 72 65 64 20 62 79 20 63 6f  s measured by co
05c0: 75 6e 74 69 6e 67 20 43 50 55 0a 63 79 63 6c 65  unting CPU.cycle
05d0: 73 20 75 73 69 6e 67 20 63 61 63 68 65 67 72 69  s using cachegri
05e0: 6e 64 2e 20 20 49 2d 63 61 63 68 65 20 6d 69 73  nd.  I-cache mis
05f0: 73 65 73 20 61 72 65 20 6e 6f 74 20 63 6f 6e 73  ses are not cons
0600: 69 64 65 72 65 64 20 69 6e 20 74 68 65 0a 61 6e  idered in the.an
0610: 61 6c 79 73 69 73 2e 20 20 49 66 20 49 2d 63 61  alysis.  If I-ca
0620: 63 68 65 20 6d 69 73 73 65 73 20 61 72 65 20 63  che misses are c
0630: 6f 6e 73 69 64 65 72 65 64 2c 20 62 75 69 6c 64  onsidered, build
0640: 73 20 77 69 74 68 20 2d 4f 36 20 6d 69 67 68 74  s with -O6 might
0650: 20 6e 6f 74 0a 62 65 20 61 6e 79 20 66 61 73 74   not.be any fast
0660: 65 72 20 74 68 61 6e 20 62 75 69 6c 64 73 20 77  er than builds w
0670: 69 74 68 20 2d 4f 73 2e 0a 0a 3c 6c 69 3e 3c 70  ith -Os...<li><p
0680: 3e 0a 54 61 6b 69 6e 67 20 69 6e 74 6f 20 63 6f  >.Taking into co
0690: 6e 73 69 64 65 72 61 74 69 6f 6e 20 61 6c 6c 20  nsideration all 
06a0: 6f 66 20 74 68 65 20 61 62 6f 76 65 2c 20 74 68  of the above, th
06b0: 65 20 53 51 4c 69 74 65 20 64 65 76 65 6c 6f 70  e SQLite develop
06c0: 65 72 73 20 72 65 63 6f 6d 6d 65 6e 64 0a 63 6f  ers recommend.co
06d0: 6d 70 69 6c 69 6e 67 20 53 51 4c 69 74 65 20 75  mpiling SQLite u
06e0: 73 69 6e 67 20 47 43 43 2d 37 20 77 69 74 68 20  sing GCC-7 with 
06f0: 74 68 65 20 2d 4f 73 20 6f 70 74 69 6d 69 7a 61  the -Os optimiza
0700: 74 69 6f 6e 20 73 65 74 74 69 6e 67 2e 0a 3c 2f  tion setting..</
0710: 6f 6c 3e 0a 0a 3c 68 72 3e 0a 3c 63 65 6e 74 65  ol>..<hr>.<cente
0720: 72 3e 0a 3c 69 6d 67 20 73 72 63 3d 27 69 6d 61  r>.<img src='ima
0730: 67 65 73 2f 63 63 2d 64 69 66 66 2e 6a 70 67 27  ges/cc-diff.jpg'
0740: 3e 0a 3c 2f 63 65 6e 74 65 72 3e 0a 3c 2f 68 72  >.</center>.</hr
0750: 3e 0a 0a 3c 68 31 3e 44 65 74 61 69 6c 73 3c 2f  >..<h1>Details</
0760: 68 31 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 70  h1>..<ul>.<li><p
0770: 3e 0a 4d 65 61 73 75 72 65 6d 65 6e 74 73 20 61  >.Measurements a
0780: 62 6f 76 65 20 77 65 72 65 20 63 6f 6e 64 75 63  bove were conduc
0790: 74 65 64 20 75 73 69 6e 67 20 53 51 4c 69 74 65  ted using SQLite
07a0: 20 76 65 72 73 69 6f 6e 20 0a 5b 68 74 74 70 73   version .[https
07b0: 3a 2f 2f 73 71 6c 69 74 65 2e 6f 72 67 2f 73 72  ://sqlite.org/sr
07c0: 63 2f 74 69 6d 65 6c 69 6e 65 3f 63 3d 35 35 39  c/timeline?c=559
07d0: 34 61 31 32 31 62 66 31 33 32 61 39 38 7c 35 35  4a121bf132a98|55
07e0: 39 34 61 31 32 31 62 66 31 33 32 61 39 38 5d 20  94a121bf132a98] 
07f0: 66 72 6f 6d 0a 32 30 31 37 2d 31 30 2d 30 38 2e  from.2017-10-08.
0800: 0a 0a 3c 6c 69 3e 3c 70 3e 0a 54 68 65 20 6f 6e  ..<li><p>.The on
0810: 6c 79 20 53 51 4c 69 74 65 20 63 6f 6d 70 69 6c  ly SQLite compil
0820: 65 2d 74 69 6d 65 20 6f 70 74 69 6f 6e 20 75 73  e-time option us
0830: 65 64 20 77 61 73 20 5b 2d 44 53 51 4c 49 54 45  ed was [-DSQLITE
0840: 5f 45 4e 41 42 4c 45 5f 4d 45 4d 53 59 53 35 5d  _ENABLE_MEMSYS5]
0850: 2e 0a 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 5b  ..The optional [
0860: 6d 65 6d 73 79 73 35 5d 20 6d 65 6d 6f 72 79 20  memsys5] memory 
0870: 61 6c 6c 6f 63 61 74 6f 72 20 69 73 20 75 73 65  allocator is use
0880: 64 20 66 6f 72 20 70 65 72 66 6f 72 6d 61 6e 63  d for performanc
0890: 65 20 74 65 73 74 69 6e 67 0a 62 65 63 61 75 73  e testing.becaus
08a0: 65 20 69 74 20 67 69 76 65 73 20 72 65 73 75 6c  e it gives resul
08b0: 74 73 20 74 68 61 74 20 61 72 65 20 6d 6f 72 65  ts that are more
08c0: 20 72 65 70 65 61 74 61 62 6c 65 20 74 68 61 6e   repeatable than
08d0: 20 74 68 65 20 6c 69 62 72 61 72 79 2d 73 75 70   the library-sup
08e0: 70 6c 69 65 64 0a 6d 61 6c 6c 6f 63 28 29 2f 66  plied.malloc()/f
08f0: 72 65 65 28 29 20 6f 6e 20 55 62 75 6e 74 75 2e  ree() on Ubuntu.
0900: 0a 0a 3c 6c 69 3e 3c 70 3e 0a 50 65 72 66 6f 72  ..<li><p>.Perfor
0910: 6d 61 6e 63 65 20 63 61 6e 20 62 65 20 69 6d 70  mance can be imp
0920: 72 6f 76 65 64 20 61 6e 64 20 74 68 65 20 73 69  roved and the si
0930: 7a 65 20 72 65 64 75 63 65 64 20 62 79 0a 65 6e  ze reduced by.en
0940: 61 62 6c 69 6e 67 20 5b 2d 44 53 51 4c 49 54 45  abling [-DSQLITE
0950: 5f 54 48 52 45 41 44 53 41 46 45 3d 30 5d 2c 0a  _THREADSAFE=0],.
0960: 5b 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c  [-DSQLITE_DEFAUL
0970: 54 5f 4d 45 4d 53 54 41 54 55 53 3d 30 5d 2c 0a  T_MEMSTATUS=0],.
0980: 5b 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55 4c  [-DSQLITE_DEFAUL
0990: 54 5f 57 41 4c 5f 53 59 4e 43 48 52 4f 4e 4f 55  T_WAL_SYNCHRONOU
09a0: 53 3d 31 5d 2c 0a 5b 2d 44 53 51 4c 49 54 45 5f  S=1],.[-DSQLITE_
09b0: 4c 49 4b 45 5f 44 4f 45 53 4e 54 5f 4d 41 54 43  LIKE_DOESNT_MATC
09c0: 48 5f 42 4c 4f 42 53 5d 2c 0a 5b 53 51 4c 49 54  H_BLOBS],.[SQLIT
09d0: 45 5f 4d 41 58 5f 45 58 50 52 5f 44 45 50 54 48  E_MAX_EXPR_DEPTH
09e0: 7c 2d 44 53 51 4c 49 54 45 5f 4d 41 58 5f 45 58  |-DSQLITE_MAX_EX
09f0: 50 52 5f 44 45 50 54 48 3d 30 5d 2c 0a 5b 2d 44  PR_DEPTH=0],.[-D
0a00: 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 44 45 43 4c  SQLITE_OMIT_DECL
0a10: 54 59 50 45 5d 2c 0a 5b 2d 44 53 51 4c 49 54 45  TYPE],.[-DSQLITE
0a20: 5f 4f 4d 49 54 5f 44 45 50 52 45 43 41 54 45 44  _OMIT_DEPRECATED
0a30: 5d 2c 0a 5b 2d 44 53 51 4c 49 54 45 5f 4f 4d 49  ],.[-DSQLITE_OMI
0a40: 54 5f 50 52 4f 47 52 45 53 53 5f 43 41 4c 4c 42  T_PROGRESS_CALLB
0a50: 41 43 4b 5d 2c 0a 5b 2d 44 53 51 4c 49 54 45 5f  ACK],.[-DSQLITE_
0a60: 4f 4d 49 54 5f 53 48 41 52 45 44 5f 43 41 43 48  OMIT_SHARED_CACH
0a70: 45 5d 2c 20 61 6e 64 0a 5b 2d 44 53 51 4c 49 54  E], and.[-DSQLIT
0a80: 45 5f 55 53 45 5f 41 4c 4c 4f 43 41 5d 2e 0a 41  E_USE_ALLOCA]..A
0a90: 6c 6c 20 74 68 65 73 65 20 6f 70 74 69 6f 6e 73  ll these options
0aa0: 20 74 6f 67 65 74 68 65 72 20 72 65 73 75 6c 74   together result
0ab0: 20 69 6e 20 61 62 6f 75 74 20 61 20 33 2e 35 25   in about a 3.5%
0ac0: 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e 63   performance inc
0ad0: 72 65 61 73 65 20 61 6e 64 0a 61 20 33 2e 30 25  rease and.a 3.0%
0ae0: 20 73 69 7a 65 20 72 65 64 75 63 74 69 6f 6e 2e   size reduction.
0af0: 0a 0a 3c 6c 69 3e 3c 70 3e 0a 41 64 64 69 6e 67  ..<li><p>.Adding
0b00: 20 6f 70 74 69 6f 6e 61 6c 20 66 65 61 74 75 72   optional featur
0b10: 65 73 20 6c 69 6b 65 20 5b 2d 44 53 51 4c 49 54  es like [-DSQLIT
0b20: 45 5f 45 4e 41 42 4c 45 5f 4a 53 4f 4e 31 5d 2c  E_ENABLE_JSON1],
0b30: 0a 5b 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c  .[-DSQLITE_ENABL
0b40: 45 5f 46 54 53 35 5d 2c 20 6f 72 20 5b 2d 44 53  E_FTS5], or [-DS
0b50: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 52 54 52  QLITE_ENABLE_RTR
0b60: 45 45 5d 20 77 69 6c 6c 20 69 6e 63 72 65 61 73  EE] will increas
0b70: 65 20 74 68 65 0a 73 69 7a 65 20 6f 66 20 74 68  e the.size of th
0b80: 65 20 6c 69 62 72 61 72 79 2c 20 6f 62 76 69 6f  e library, obvio
0b90: 75 73 6c 79 2e 0a 0a 3c 6c 69 3e 3c 70 3e 0a 50  usly...<li><p>.P
0ba0: 65 72 66 6f 72 6d 61 6e 63 65 20 77 61 73 20 6d  erformance was m
0bb0: 65 61 73 75 72 65 64 20 75 73 69 6e 67 20 74 68  easured using th
0bc0: 65 0a 5b 68 74 74 70 73 3a 2f 2f 73 71 6c 69 74  e.[https://sqlit
0bd0: 65 2e 6f 72 67 2f 73 72 63 2f 66 69 6c 65 2f 74  e.org/src/file/t
0be0: 65 73 74 2f 73 70 65 65 64 74 65 73 74 31 2e 63  est/speedtest1.c
0bf0: 7c 73 70 65 65 64 74 65 73 74 31 2e 63 5d 20 75  |speedtest1.c] u
0c00: 74 69 6c 69 74 79 20 70 72 6f 67 72 61 6d 2c 0a  tility program,.
0c10: 77 68 69 63 68 20 61 74 74 65 6d 70 74 73 20 74  which attempts t
0c20: 6f 20 6d 69 6d 69 63 20 61 20 74 79 70 69 63 61  o mimic a typica
0c30: 6c 20 77 6f 72 6b 6c 6f 61 64 20 66 6f 72 20 53  l workload for S
0c40: 51 4c 69 74 65 2e 20 20 4f 70 74 69 6f 6e 73 20  QLite.  Options 
0c50: 74 6f 0a 74 68 65 20 74 65 73 74 20 72 75 6e 73  to.the test runs
0c60: 20 61 72 65 3a 0a 3c 62 6c 6f 63 6b 71 75 6f 74   are:.<blockquot
0c70: 65 3e 0a 3c 74 74 3e 2d 2d 73 68 72 69 6e 6b 2d  e>.<tt>--shrink-
0c80: 6d 65 6d 6f 72 79 20 2d 2d 72 65 70 72 65 70 61  memory --reprepa
0c90: 72 65 20 2d 2d 73 74 61 74 73 20 2d 2d 68 65 61  re --stats --hea
0ca0: 70 20 31 30 30 30 30 30 30 30 20 36 34 20 2d 2d  p 10000000 64 --
0cb0: 73 69 7a 65 20 35 3c 2f 74 74 3e 0a 3c 2f 62 6c  size 5</tt>.</bl
0cc0: 6f 63 6b 71 75 6f 74 65 3e 0a 50 65 72 66 6f 72  ockquote>.Perfor
0cd0: 6d 61 6e 63 65 20 77 61 73 20 6d 65 61 73 75 72  mance was measur
0ce0: 65 64 20 62 79 20 72 75 6e 6e 69 6e 67 20 73 70  ed by running sp
0cf0: 65 65 64 74 65 73 74 31 20 75 73 69 6e 67 20 63  eedtest1 using c
0d00: 61 63 68 65 67 72 69 6e 64 20 61 6e 64 0a 6f 62  achegrind and.ob
0d10: 73 65 72 76 69 6e 67 20 74 68 65 20 22 49 20 72  serving the "I r
0d20: 65 66 73 22 20 6f 75 74 70 75 74 2e 0a 3c 2f 75  efs" output..</u
0d30: 6c 3e 0a                                         l>.