On Tue, May 10, 2016 at 9:56 AM, Jeremy Nicoll < jn.ml.sqlu.725 at letterboxes.org> wrote:
> On Tue, 10 May 2016, at 16:26, Scott Robison wrote: > > > I believe the tools provided by the site statically like SQLite so no DLL > > is required. The DLL is provided as a courtesy to those who do not want > > to link their own apps statically. > > > > Not near a computer to confirm this, but I know for a fact that 32 / 64 > > bit DLLs are not interchangeable. See > > > https://msdn.microsoft.com/en-us/library/windows/desktop/aa384231(v=vs.85).aspx > > Thanks for the link. > > I looked at the sizes of the DLLs and the tools .executables: > > 32-bit DLL 807 KB > 64-bit DLL 1644 KB > > sqldiff.exe 422 KB > sqlite3.exe 661 KB > sqlite3_analyser.exe 1912 KB > > That suggests to me that sqldiff & sqlite3 only use a small fraction of > the code present in > a DLL, and the link only includes those functions in the resulting .exe. > Is that likely? Or > are the .exe's compressed? > I'm fairly confident they don't use 100% of the SQLite code in each, and I don't believe they are compressed. However, statically linking SQLite directly, particularly in amalgamation form, potentially opens up a lot of optimization opportunities that aren't available in a DLL where you don't know which APIs might be needed by any given program. -- Scott Robison