memorize the calculated file dependencies. Thanks to Ignacio Piantanida for the patch.

http://hipbyte.myjetbrains.com/youtrack/issue/RM-466

* before
  % time rake
  ... snip ...
  rake  38.41s user 2.77s system 101% cpu 40.515 total

* after
  % time rake
  ... snip ...
  rake  18.01s user 1.64s system 89% cpu 21.877 total
This commit is contained in:
Watson
2014-04-10 16:47:05 +09:00
parent f34647252e
commit d1d3952c46

View File

@@ -236,14 +236,17 @@ module Motion; module Project
end
def file_dependencies(file)
deps = @dependencies[file]
if deps
deps = deps.map { |x| file_dependencies(x) }
else
deps = []
@known_dependencies ||= {}
@known_dependencies[file] ||= begin
deps = @dependencies[file]
if deps
deps = deps.map { |x| file_dependencies(x) }
else
deps = []
end
deps << file
deps
end
deps << file
deps
end
def ordered_build_files