summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-06-16 11:18:04 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2016-06-16 11:19:19 +0000
commita0e98aafe4ca861727659b8adee762e0ab704ce0 (patch)
tree0307234b512ae4a5de87d34c8da2a1efad0cb8ac /searchcore
parentfa0c1fd54301974aba4024efe7baf320b9a0766e (diff)
Add final to enable compiler to inline/optimize a lot more.
Inline. Based on observations of high fixed query cost during rank setup.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp13
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/querynodes.h10
2 files changed, 8 insertions, 15 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp
index 2acb9c3a165..b7c5467d8cf 100644
--- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp
+++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp
@@ -109,25 +109,18 @@ ProtonTermData::setDocumentFrequency(uint32_t estHits, uint32_t docIdLimit)
}
}
-size_t
-ProtonTermData::numFields() const
-{
- return _fields.size();
-}
-
const ProtonTermData::FieldEntry &
ProtonTermData::field(size_t i) const
{
- assert(i < _fields.size());
return _fields[i];
}
const ProtonTermData::FieldEntry *
ProtonTermData::lookupField(uint32_t fieldId) const
{
- for (size_t i = 0; i < numFields(); ++i) {
- if (field(i).getFieldId() == fieldId) {
- return &field(i);
+ for (size_t i = 0; i < _fields.size(); ++i) {
+ if (_fields[i].getFieldId() == fieldId) {
+ return &_fields[i];
}
}
return 0;
diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h
index 63052d633d1..13bf3e30c29 100644
--- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h
+++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h
@@ -27,7 +27,7 @@ class ProtonTermData : public search::fef::ITermData
public:
typedef search::queryeval::FieldSpec FieldSpec;
- struct FieldEntry : search::fef::SimpleTermFieldData {
+ struct FieldEntry final : search::fef::SimpleTermFieldData {
vespalib::string field_name;
bool attribute_field;
bool filter_field;
@@ -42,7 +42,7 @@ public:
return FieldSpec(field_name, getFieldId(),
getHandle(), filter_field);
}
- virtual search::fef::TermFieldHandle getHandle() const;
+ search::fef::TermFieldHandle getHandle() const override;
};
private:
@@ -62,9 +62,9 @@ public:
void setDocumentFrequency(uint32_t estHits, uint32_t numDocs);
// ITermData interface
- virtual size_t numFields() const;
- virtual const FieldEntry &field(size_t i) const;
- virtual const FieldEntry *lookupField(uint32_t fieldId) const;
+ size_t numFields() const override final { return _fields.size(); }
+ const FieldEntry &field(size_t i) const override final;
+ const FieldEntry *lookupField(uint32_t fieldId) const override final;
};
namespace {