aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-05-22 14:38:46 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-05-22 14:38:46 +0000
commit1c5d8ba183621e3f101b8f16eae7fcfb4c22f808 (patch)
tree055e3d576cdc0fc423973da69e39dd0ec8c69a63 /searchlib
parent38601194dc7ece53e180005f10f26c3858956ce6 (diff)
Use a smallvector to avoid indirection in most common case, and reserve some space upfront
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/fef/itermdata.h2
-rw-r--r--searchlib/src/vespa/searchlib/fef/itermfielddata.h2
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/blueprint.h1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/field_spec.h2
5 files changed, 5 insertions, 3 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
index 9d1ec1b37a8..7a622030d98 100644
--- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
@@ -860,6 +860,7 @@ void
CreateBlueprintVisitor::createShallowWeightedSet(WS *bp, MultiTerm &n, const FieldSpec &fs, bool isInteger) {
Blueprint::UP result(bp);
SearchContextParams scParams = createContextParams();
+ bp->reserve(n.getNumTerms());
for (uint32_t i(0); i < n.getNumTerms(); i++) {
FieldSpec childfs = bp->getNextChildField(fs);
auto term = n.getAsString(i);
diff --git a/searchlib/src/vespa/searchlib/fef/itermdata.h b/searchlib/src/vespa/searchlib/fef/itermdata.h
index 306c91f7ab2..9a063cf93ee 100644
--- a/searchlib/src/vespa/searchlib/fef/itermdata.h
+++ b/searchlib/src/vespa/searchlib/fef/itermdata.h
@@ -16,7 +16,7 @@ namespace search::fef {
class ITermData
{
protected:
- virtual ~ITermData() {}
+ virtual ~ITermData() = default;
public:
/**
diff --git a/searchlib/src/vespa/searchlib/fef/itermfielddata.h b/searchlib/src/vespa/searchlib/fef/itermfielddata.h
index 057a5794fa9..88fa8c5f781 100644
--- a/searchlib/src/vespa/searchlib/fef/itermfielddata.h
+++ b/searchlib/src/vespa/searchlib/fef/itermfielddata.h
@@ -76,7 +76,7 @@ public:
**/
virtual TermFieldHandle getHandle(MatchDataDetails requested_details) const = 0;
protected:
- virtual ~ITermFieldData() {}
+ virtual ~ITermFieldData() = default;
private:
uint32_t _fieldId;
uint32_t _matching_doc_count;
diff --git a/searchlib/src/vespa/searchlib/queryeval/blueprint.h b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
index 1ea02e41a62..dc7a0992d82 100644
--- a/searchlib/src/vespa/searchlib/queryeval/blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
@@ -331,6 +331,7 @@ public:
size_t childCnt() const { return _children.size(); }
const Blueprint &getChild(size_t n) const { return *_children[n]; }
Blueprint &getChild(size_t n) { return *_children[n]; }
+ void reserve(size_t sz) { _children.reserve(sz); }
IntermediateBlueprint & insertChild(size_t n, Blueprint::UP child);
IntermediateBlueprint &addChild(Blueprint::UP child);
Blueprint::UP removeChild(size_t n);
diff --git a/searchlib/src/vespa/searchlib/queryeval/field_spec.h b/searchlib/src/vespa/searchlib/queryeval/field_spec.h
index a1050209b41..fd925fdf4ff 100644
--- a/searchlib/src/vespa/searchlib/queryeval/field_spec.h
+++ b/searchlib/src/vespa/searchlib/queryeval/field_spec.h
@@ -86,7 +86,7 @@ public:
class FieldSpecList
{
private:
- std::vector<FieldSpec> _list;
+ vespalib::SmallVector<FieldSpec, 1> _list;
public:
FieldSpecList() = default;