On 2018/05/31 3:44 PM, Richard Hipp wrote:
For many years, we have boasted that the size of the SQLite library is
"less than half a megabyte". That will likely still be true in the
3.24.0 release, though just barely. Compiling with gcc 5.4.0 and -Os
on ubuntu, I get 499,709 bytes. With gcc 7.1.0 and -Os I get 496,399
bytes.
The library is, of course, larger if you enable optional features such
as full-text search and/or use compiler optimizations like -O3 which
enable loop unrolling and function inlining. And most people do
compile it that way. So "less than a megabyte" might be a more
accurate description of SQLite in practice. But the default
configuration compiled with -Os is a good metric for comparison.
See https://sqlite.org/tmp/size-20180531.jpg for the library size
trend over 5 years. The measurements in the graph were done with gcc
5.4.0 and -Os on ubuntu. As you can see, we have held the line below
500,000 bytes for a long time. But the recent addition of new
features (ex: UPSERT) has caused a slight uptick in the library size.
As further new features are in the pipeline, the upcoming 3.24.0
release will probably be the last for which the library size comes in
at less than 500,000 bytes. For this reason, I will probably change
the size bullet point to say "less than 500 kibibytes (KiB)" or "less
than 0.5 mebibytes (MiB)", as "less than 600KB" does not have quite
the same emotional impact. You will notice that the graph linked
above is calibrated in mebibytes.
Nice idea, but to be honest, I can't remember when last someone cared
about "Kilobytes", and I mean embedded people, not big OSes.
The measure of importance is how expensive the DATA storing is, both in
size and write-frequency, when committed to some hardware NANDs. The
code store section of even the smallest modern embedded system will be
designed to fit things many megabytes more than SQLite requires
(exceptions may exist, but are really thin on the ground). So then,
whether the operating code is given in KB or MiB or KiB is, to my mind,
not very relevant - and it too will become untrue in a non-too-distant
future.
May I propose, if changing is on the table, to rather update to a more
current universal notion (and modern embedded capacities) and make it
leaner by removing one word and simply call it:
"less than a megabyte"
This has much the same emotional impact, still is downright amazing,
doesn't require naming shenanigans, is very TRUE, even with a few funny
switches compiled-in, AND will remain true for many years to come,
possibly to the end of the SQLite lifecycle ~30 years hence.
My 2c...
Ryan
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users