Details
-
Improvement
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
Dev Platform 2021-09-20
Description
When RecordId was a trivial wrapper around an int64_t, it made some sense for the free-function relops to be written as taking RecordId by value, but subsequent evolution of RecordId has invalidated that assumption. Notably, the addition of a fixed char array and later a ConstSharedBuffer means that a real copy constructor is getting synthesized and invoked for both arguments to the relops. This is potentially expensive if a RecordId is large and the ConstSharedBuffer is engaged, as it will jiggle the refcount atomic.