Skip to content

Serialization Cache regression between Iron and Jazzy #552

@jmachowinski

Description

@jmachowinski

Hi,
we notices that a performance regression between the Iron and Jazzy release.
Perf analysis show, that the function

rmw_cyclonedds_cpp::CDRWriter::serialize(rmw_cyclonedds_cpp::CDRCursor*, void const*, rmw_cyclonedds_cpp::AnyValueType const*) const

takes around 10x the CPU time in Jazzy, as compared to Iron.
As also dyn_cast pops up heavily in the perf analysis and the serialization code was not changes at all between Jazzy and Iron, we believe, that the check for trivial serialization now returns false in

if (lookup_trivially_serialized(cursor->offset(), value_type)) {

As to why that happens, this is a mystery to us.
@fujitatomoya @mjcarroll any ideas ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions