diff options
author | Dave Smith <dizzyd@dizzyd.com> | 2011-10-25 23:59:50 -0600 |
---|---|---|
committer | Tuncer Ayaz <tuncer.ayaz@gmail.com> | 2011-10-26 23:16:36 +0200 |
commit | 17616d1078063ea0748d009e3a111c4b615262e8 (patch) | |
tree | d714ece6f68f8ee1085c8b7edbcabe7385b70c32 /src/rebar_require_vsn.erl | |
parent | b65d5904f555874e24a4610ea63d8c10ecf62448 (diff) |
Overhaul environment expansion for better performance
The introduction of setup_env as a global concept caused the rebar_port_compiler
implementation to start getting called a LOT. The expansion of environment variables
that happens in the port compiler was O(n^n), which means you could see upwards of
80k invocations of lists:foldl on a single app "./rebar clean". This commit reworks
the expansion to be O(n^2), and reduces the running time for the same operation by
60%+. On a large project like Riak, the end result is that a build went from 200
seconds to 73.
Diffstat (limited to 'src/rebar_require_vsn.erl')
0 files changed, 0 insertions, 0 deletions