Skip to content

Improve performance of ParsedMessage::variable_t in clp-s. #1514

@gibber9809

Description

@gibber9809

Request

Currently ParsedMessage::variable_t takes ownership over parsed variables primarily by making copies. In some situations we should be able to avoid these copies either by taking ownership via move construction, or via views.

Possible implementation

  1. In the KV-IR ingestion path we should be able to move-construct EncodedTextAst instances to avoid copies. The KV-IR deserializer implementation just needs to expose a mutable view to EncodedTextAst.
  2. In the JSON ingestion path we should verify whether we actually need to make copies of unescaped strings from simdjson. The issue is that simdjson returns these unescaped strings as std::string_view, and isn't clear about the exact lifetime of the returned std::string_view.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions