[Scons-users] Out of memory writing back the database

Eric Fahlgren ericfahlgren at gmail.com
Fri Dec 1 11:59:18 EST 2017


I got curious while reading this thread and looked at our .sconsign files.
Most of them are around 300K, but the one in our production directory was
2.5M (pretty tiny compared to Steve's 500M, but interesting in that it's
​10x bigger
 even though it's building the same source).  All of the small ones are
just test builds
​ --
 one or two builds in them and then they get deleted.  The one in
production is many years old, with one build per day.

I did this to get a rough look at a few of them:

>>> python -c 'from SCons import dblite ; x =
dblite.open(".sconsign.dblite") ; print("\n".join("%7s %s"% (len(x[s]), s)
for s in sorted(x.keys())))'

The list of keys is the same for all of those that I examined, but the data
blob seems to grow with use.  (I trimmed out three of the most interesting
ones, there were a couple hundred entries in each dump.)

    660 win32\build
  23546 win32\install
  35249 win32\install\bin

In production:

 133860 win32\build
2293371 win32\install
  83235 win32\install\bin

The growth of the install directory
​ blob​
itself is pretty easy to explain: we create a number of "release versioned"
files there, each has a file name containing the day's build number so we
have something like "WIN32/install/installer1234.exe" with a different
number each day.

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20171201/46c38d6f/attachment.html>


More information about the Scons-users mailing list