eclipse-cyclonedds / cyclonedds

Eclipse Cyclone DDS project
https://projects.eclipse.org/projects/iot.cyclonedds
Other
889 stars 363 forks source link

Shared Memory examples #1893

Open ex-purple opened 12 months ago

ex-purple commented 12 months ago

Thanks for solving documentation issue https://github.com/eclipse-cyclonedds/cyclonedds/issues/1883

But we have another issue about examples: https://cyclonedds.io/docs/cyclonedds/latest/shared_memory/shared_mem_examples.html

Looks like ShmThroughputPublisher and ShmThroughputSubscriber have been removed here

Will these examples be added again?

eboasson commented 12 months ago

Will these examples be added again?

I don't think it makes sense to have a separate "throughput" example for shared memory. I suppose there would be some value in having an example of using loans. The regular "throughput" example unfortunately can't do zero-copy because that requires the type to not contain any strings or sequences (or other things involving pointers).

It would in my view make more sense to not have any throughput and latency tests as examples, precisely because such details as the type and whether or not loans get used matter for performance measurements, but also make the examples more complicated (or requires a lot of code duplication) and that's not good for an example.

For measurements, ddsperf will happily do everything but it is somewhat complicated. Something like https://github.com/eboasson/i11eperf might work, though, but integrating that as an example in Cyclone doesn't make sense because it has stuff in there for a variety of open-source DDS implementations.

The examples I believe should show how to do loans, zero-copy, &c. but not suggest anything concerning performance measurements.

But the time it takes to make such improvements to the set of examples never seems to materialize ...