aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/journey
diff options
context:
space:
mode:
authorBen Hughes <ben@pixelmachine.org>2016-12-28 11:35:43 -0800
committerBen Hughes <ben@pixelmachine.org>2016-12-28 17:19:15 -0800
commitf1525dac115cea40ec41b4f9e267e011be8da22e (patch)
tree3e2fb4694230c63bc5cbbbb9ead82c25e1466249 /actionpack/test/journey
parent47cda2e1f655d38a204c4df88d780500c1e99316 (diff)
downloadrails-f1525dac115cea40ec41b4f9e267e011be8da22e.tar.gz
rails-f1525dac115cea40ec41b4f9e267e011be8da22e.tar.bz2
rails-f1525dac115cea40ec41b4f9e267e011be8da22e.zip
Optimize Journey::Route#score
Scoring routes based on constraints repeated many type conversions that could be performed in the outer loop. Determinations of score and fitness also used Array operations that required allocations. Against my benchmark with a large routeset, this reduced object allocations by over 30x and wall time by over 3x.
Diffstat (limited to 'actionpack/test/journey')
-rw-r--r--actionpack/test/journey/route_test.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/actionpack/test/journey/route_test.rb b/actionpack/test/journey/route_test.rb
index d2a8163ffb..8fd73970b8 100644
--- a/actionpack/test/journey/route_test.rb
+++ b/actionpack/test/journey/route_test.rb
@@ -96,7 +96,7 @@ module ActionDispatch
path = Path::Pattern.from_string "/:controller(/:action(/:id))(.:format)"
generic = Route.build "name", nil, path, constraints, [], {}
- knowledge = { id: 20, controller: "pages", action: "show" }
+ knowledge = { "id" => true, "controller" => true, "action" => true }
routes = [specific, generic]