No description
Find a file
Erik Boasson c61c880fd2 make proxy reader/writer references to sertopics properly counted, strong references
without this, deleting the last reader/writer that references the topic results in a dangling pointer ... but there is another intriguing solution: erase the topic from the proxy reader/writer when the last matching local one disappears, so that the topic completely disappears. I rather like this second solution, but I am not yet sure of the consequences and the first (implemented one) is such a simple change that fixes a real problem that it is a no-brainer

Signed-off-by: Erik Boasson <eb@ilities.com>
2019-01-03 17:30:25 +01:00
docs/dev Add Travis CI debug instructions 2018-11-30 23:42:58 +01:00
notes add some diagrams related to the data path 2018-07-04 15:59:55 +02:00
src make proxy reader/writer references to sertopics properly counted, strong references 2019-01-03 17:30:25 +01:00
vdds-xcode/vdds-xcode.xcodeproj Initial contribution 2018-04-10 17:03:59 +02:00
.gitignore Fix build with openJDK-10 2018-06-23 21:51:21 +02:00
.gitmodules Initial contribution 2018-04-10 17:03:59 +02:00
.travis.yml Replace Criterion by CUnit 2018-12-06 14:48:30 +01:00
appveyor.yml Replace Criterion by CUnit 2018-12-06 14:48:30 +01:00
conanfile.txt Replace Criterion by CUnit 2018-12-06 14:48:30 +01:00
CONTRIBUTING.md Add README 2018-04-24 10:07:55 +02:00
LICENSE Initial contribution 2018-04-10 17:03:59 +02:00
NOTICE.md Add getopt 1.5 3rd party dependency 2018-05-08 10:18:52 +02:00
README.md Updated with latest performance number 2018-12-12 10:38:34 +01:00

Eclipse Cyclone DDS

Eclipse Cyclone DDS is by far the most performant and robust DDS implementation available on the market.

Beside, Cyclone DDS is developed completely in the open and is undergoing the acceptance process to become part of Eclipse IoT (see eclipse-cyclone-dds).

Getting Started

Building Cyclone DDS

In order to build cyclone DDS you need to have installed on your host cmake v3.6.0 or higher, the Java 8 JDK or simply the Java 8 RE, and Apache Maven 3.5.x or higher.

Assuming that git is also available on your machine then, simply do:

$ git clone https://github.com/eclipse/cyclonedds.git 
$ cd cyclonedds
$ mkdir build
$ cd build
$ cmake ../src
$ make
$ make install

At this point you are ready to use cyclonedds for your next DDS project!

Examples

Now that you have built and installed cyclonecdds it is time to experiment with some examples.

Building and Running the Roundtrip Example

The first example we will show you how to build and run, measures cyclonedds latency and will allow you to see with your eyes how fast it is!

Do as follows:

$ cd cyclonedds/src/examples/roundtrip
$ mkdir build
$ cd build
$ cmake ..
$ make

Now that you've build the roundtrip example it is time to run it.

On one terminal start the applications that will be responding to cyclonedds pings. $ ./RoundtripPong

On another terminal, start the application that will be sending the ping.

$ ./RoundtripPing 0 0 0 
# payloadSize: 0 | numSamples: 0 | timeOut: 0
# Waiting for startup jitter to stabilise
# Warm up complete.
# Round trip measurements (in us)
#             Round trip time [us]                           Write-access time [us]       Read-access time [us]
# Seconds     Count   median      min      99%      max      Count   median      min      Count   median      min
    1     28065       17       16       23       87      28065        8        6      28065        1        0
    2     28115       17       16       23       46      28115        8        6      28115        1        0
    3     28381       17       16       22       46      28381        8        6      28381        1        0
    4     27928       17       16       24      127      27928        8        6      27928        1        0
    5     28427       17       16       20       47      28427        8        6      28427        1        0
    6     27685       17       16       26       51      27685        8        6      27685        1        0
    7     28391       17       16       23       47      28391        8        6      28391        1        0
    8     27938       17       16       24       63      27938        8        6      27938        1        0
    9     28242       17       16       24      132      28242        8        6      28242        1        0
   10     28075       17       16       23       46      28075        8        6      28075        1        0

The number above were measure on Mac running a 4,2 GHz Intel Core i7 on December 12th 2018. From these number you can see how the roundtrip is incredibly stable and the minimal latency is now down to 17 micro-seconds (used to be 25 micro-seconds) on this HW.

Documentation

The Cyclone DDS documentation is available here.