From 6fff8c954ac1aa5a7140cb3dd7ed0430fb054a36 Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Thu, 22 Dec 2016 18:11:33 -0300 Subject: [PATCH] Performance improvement: makes the collections lookup faster --- src/collection/backend/in_memory-per_process.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/collection/backend/in_memory-per_process.cc b/src/collection/backend/in_memory-per_process.cc index d8bb1213..9c2d0f43 100644 --- a/src/collection/backend/in_memory-per_process.cc +++ b/src/collection/backend/in_memory-per_process.cc @@ -94,17 +94,25 @@ void InMemoryPerProcess::resolveMultiMatches(const std::string& var, } for (const auto& x : *this) { + bool diff = false; + if (x.first.size() <= keySize + 1) { continue; } if (x.first.at(keySize) != ':') { continue; } - std::string fu = utils::string::toupper(x.first); - std::string fvar = utils::string::toupper(var); - if (fu.compare(0, keySize, fvar) != 0) { + + for (int i = 0; i < keySize && diff == false; i++) { + if (std::tolower(x.first.at(i)) != std::tolower(var.at(i))) { + diff = true; + } + } + + if (diff == true) { continue; } + l->insert(l->begin(), new Variable(x.first, x.second)); } }