From f03fcf7a5b4b95fe1c63b66881340e42c6a9ffcb Mon Sep 17 00:00:00 2001 From: c9s Date: Wed, 4 Jun 2014 20:01:46 +0800 Subject: [PATCH] parameter optimization --- bench_str.csv | 10 ++++++++++ src/node.c | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/bench_str.csv b/bench_str.csv index a8a184d..954e869 100644 --- a/bench_str.csv +++ b/bench_str.csv @@ -557,3 +557,13 @@ 1401786013,10430212.17,4125745.93,45590.26,2506666.43 1401786024,10213079.29,4298993.08,45100.04,2533248.03 1401786035,10579681.12,4386844.66,37117.73,2541278.85 +1401882943,11243814.21,3713601.99,71089.90,2059566.22 +1401882957,9032357.36,3661155.55,52428.80,1797098.08 +1401882969,9252194.24,4232721.88,76260.07,2159762.80 +1401882981,11134212.84,4231286.57,53092.46,2180900.77 +1401882993,10950888.02,4182279.39,53092.46,2164511.15 +1401883005,11123999.47,3725357.71,76260.07,2211605.54 +1401883017,10773686.78,3988825.00,45590.26,2256792.94 +1401883029,9745543.72,4216836.53,45590.26,2209917.38 +1401883041,10991057.38,4192016.84,55924.05,2164285.17 +1401883053,11253995.23,4111639.22,45100.04,2096238.88 diff --git a/src/node.c b/src/node.c index dcc407f..5e5918e 100644 --- a/src/node.c +++ b/src/node.c @@ -400,10 +400,11 @@ node * r3_tree_matchl(const node * n, const char * path, int path_len, match_ent route * r3_tree_match_route(const node *tree, match_entry * entry) { node *n; + int i; n = r3_tree_match_entry(tree, entry); if (n && n->routes && n->route_len > 0) { - int i; - for (i = 0; i < n->route_len ; i++ ) { + i = n->route_len; + while(i--) { if ( r3_route_cmp(n->routes[i], entry) == 0 ) { return n->routes[i]; } @@ -779,7 +780,7 @@ void r3_tree_dump(const node * n, int level) { * * -1 == different route */ -int r3_route_cmp(const route *r1, const match_entry *r2) { +inline int r3_route_cmp(const route *r1, const match_entry *r2) { if (r1->request_method != 0) { if (0 == (r1->request_method & r2->request_method) ) { return -1;