diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-06-16 11:18:04 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-06-16 11:19:19 +0000 |
commit | a0e98aafe4ca861727659b8adee762e0ab704ce0 (patch) | |
tree | 0307234b512ae4a5de87d34c8da2a1efad0cb8ac /searchcore | |
parent | fa0c1fd54301974aba4024efe7baf320b9a0766e (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.cpp | 13 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/matching/querynodes.h | 10 |
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 { |