martine/ninja — pull request #715 by nico (2014-02-11 20:21:30+00:00)
Title: Allocate per-edge BindingEnvs lazily.

In chrome, only 2000 of 22000 build edges have bindings. A BindingEnv is
64 bytes, so allocating these only when needed saves a bit over 1 MB of
memory. Since env chains are shorter for lookups, builds also become a
tiny bit faster.

It's a somewhat small optimization but it costs only two lines, so it's probably worth it.