Skip to content

lola: Performance improvements for Service/Event[Data]Control#218

Draft
bemerybmw wants to merge 3 commits intomainfrom
brem_skel_proxy_event_data_control
Draft

lola: Performance improvements for Service/Event[Data]Control#218
bemerybmw wants to merge 3 commits intomainfrom
brem_skel_proxy_event_data_control

Conversation

@bemerybmw
Copy link
Contributor

Depends-on: #211

This commit splits up ServiceDataControl, EventDataControl and
EventControl into a data class (ServiceDataControl, EventDataControl and
EventControl) which contains the data that is placed in shared memory
and behaviour "view" classes (ServiceDataControlLocalView,
EventDataControlLocalView and EventControlLocalView) which contain behaviour
for interacting with the data via process local raw pointers which avoid
performance overhead of interacting with data directly in shared memory
(due to performance overhead of dealing with OffsetPtrs).
Since we always create a QM EventDataControl, we pass it into the
composite by reference instead of by pointer to avoid doing nullptr
checks within the composite (and for clearer semantics).
We previously introduced these classes to avoid additional bounds
checking done when indexing into a DynamicArray in shared memory. Since
we now are using the local views into shared memory, we no longer need
this optimisation and can revert to simply accessing slots using their
indices.
@bemerybmw bemerybmw force-pushed the brem_skel_proxy_event_data_control branch from fcd74c6 to 5dc4dba Compare March 25, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant