1.2.4. C# API¶
The following tests have been performed executing a simplified version of RTI Perftest (the full C# API implementation for RTI Perftest is still under development). The applications are executed between two nodes, connected to a switch via Ethernet. The communication has been restricted to a single interface and the transport has been set to UDPv4.
Find information about the hardware, network, and command-line parameters after each of the tests.
Note
These numbers come from the RTI Connext DDS 6.1.0.2 patch, which improves the C# API performance in both latency and throughput. See more information about this patch in the RTI Connext C# API Release Notes.
1.2.4.1. Unkeyed, UDPv4 10Gbps Network, C#¶
The graph below shows the one-way latency without load between a Publisher and a Subscriber running in two Linux nodes in a 10Gbps network. The numbers are for best-effort as well as strict reliable reliability scenarios.
Note
We use the median (50th percentile) instead of the average in order to get a more stable measurement that does not account for spurious outliers. We also calculate the average value and other percentile values, which can be seen in the Detailed Statistics section below.
Detailed Statistics
The following tables contain the raw numbers presented by a simplified version of RTI Perftest for the Modern C# implementation. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Samples Sent |
50% (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
---|---|---|---|---|---|
32 |
566023 |
23 |
6 |
23 |
579 |
64 |
557731 |
24 |
3 |
23 |
577 |
128 |
551639 |
24 |
4 |
23 |
583 |
256 |
544291 |
24 |
6 |
24 |
576 |
512 |
525096 |
25 |
6 |
25 |
579 |
1024 |
503748 |
26 |
7 |
26 |
548 |
2048 |
445090 |
30 |
7 |
30 |
600 |
4096 |
422799 |
32 |
6 |
31 |
601 |
8192 |
367697 |
37 |
7 |
36 |
601 |
16384 |
282831 |
49 |
7 |
48 |
643 |
32768 |
197291 |
71 |
12 |
70 |
647 |
63000 |
127751 |
112 |
9 |
110 |
470 |
Reliable
Sample Size (Bytes) |
Samples Sent |
50% (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
---|---|---|---|---|---|
32 |
513601 |
26 |
4 |
24 |
598 |
64 |
509110 |
26 |
6 |
24 |
604 |
128 |
505560 |
26 |
7 |
25 |
601 |
256 |
495709 |
27 |
5 |
25 |
597 |
512 |
481944 |
28 |
4 |
26 |
577 |
1024 |
458969 |
29 |
6 |
28 |
635 |
2048 |
404302 |
33 |
9 |
31 |
623 |
4096 |
395579 |
34 |
8 |
32 |
631 |
8192 |
338522 |
40 |
10 |
38 |
648 |
16384 |
266148 |
52 |
9 |
49 |
693 |
32768 |
190216 |
74 |
11 |
71 |
681 |
63000 |
124261 |
115 |
11 |
112 |
507 |
Test Hardware
The following hardware was used to perform these tests:
Linux Nodes
Processor: Intel® Xeon® E-2186G 3.8GHz, 12M cache, 6C/12T, turbo (95W)
RAM: 16GB 2666MT/s DDR4 ECC UDIMM
NIC 1: Intel X550 Dual Port 10GbE BASE-T Adapter, PCIe Full Height
NIC 2: Intel Ethernet I350 Dual Port 1GbE BASE-T Adapter, PCIe Low Profile
OS: Ubuntu 18.04 -- gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Switch
Dell Networking S4048T-ON, 48x 10GBASE-T and 6x 40GbE QSFP+ ports, IO to PSU air, 2x AC PSU, OS9
The graph below shows the expected throughput behavior when performing a 1-1 communication between two Linux nodes in a 10Gbps network. The numbers are for best-effort as well as strict reliable reliability scenarios.
Note
By default, RTI Perftest enables batching when performing a Maximum Throughput test. The batching feature allows sending more than one data sample per RTPS packet, improving network performance for small data sizes. See the RTI Connext DDS Core Libraries User’s Manual for more information on batching.
The batch maximum size is set by RTI Perftest to be 8192 bytes; after 8192 bytes, batching is not enabled.
Detailed Statistics
This table contains the raw numbers presented by RTI Perftest. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Total Samples |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
---|---|---|---|---|
32 |
87132442 |
750.4 |
0 |
0.00 |
64 |
84223015 |
1439.2 |
3711872 |
4.22 |
128 |
76077339 |
2622.6 |
717184 |
0.93 |
256 |
61161640 |
4220.9 |
5822400 |
8.69 |
512 |
42961520 |
5888.4 |
2322336 |
5.13 |
1024 |
26506137 |
7274.2 |
4065048 |
13.30 |
2048 |
15104280 |
8298.0 |
2499772 |
14.20 |
4096 |
8470215 |
9310.7 |
349398 |
3.96 |
8192 |
4182901 |
9275.9 |
248632 |
5.61 |
16384 |
2380983 |
9078.1 |
843952 |
37.93 |
32768 |
1038029 |
9068.3 |
76714 |
6.88 |
63000 |
559021 |
9475.2 |
21184 |
3.65 |
Reliable
Sample Size (Bytes) |
Total Samples |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
---|---|---|---|---|
32 |
85305856 |
730.1 |
0 |
0.00 |
64 |
83234459 |
1425.9 |
0 |
0.00 |
128 |
71571200 |
2455.5 |
0 |
0.00 |
256 |
56480800 |
3879.2 |
0 |
0.00 |
512 |
40435988 |
5601.2 |
0 |
0.00 |
1024 |
25078392 |
6952.3 |
0 |
0.00 |
2048 |
13621854 |
7438.5 |
0 |
0.00 |
4096 |
6203486 |
8631.8 |
0 |
0.00 |
8192 |
4004242 |
8748.0 |
0 |
0.00 |
16384 |
2223313 |
9721.7 |
0 |
0.00 |
32768 |
1044144 |
9263.8 |
0 |
0.00 |
63000 |
549253 |
9317.6 |
0 |
0.00 |
Test Hardware
The following hardware was used to perform these tests:
Linux Nodes
Processor: Intel® Xeon® E-2186G 3.8GHz, 12M cache, 6C/12T, turbo (95W)
RAM: 16GB 2666MT/s DDR4 ECC UDIMM
NIC 1: Intel X550 Dual Port 10GbE BASE-T Adapter, PCIe Full Height
NIC 2: Intel Ethernet I350 Dual Port 1GbE BASE-T Adapter, PCIe Low Profile
OS: Ubuntu 18.04 -- gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Switch
Dell Networking S4048T-ON, 48x 10GBASE-T and 6x 40GbE QSFP+ ports, IO to PSU air, 2x AC PSU, OS9
The graph below shows the one-way latency without load between a Publisher and a Subscriber running in two Windows nodes in a 10Gbps network. The numbers are taken for strict reliable reliability scenarios.
Note
We use the median (50th percentile) instead of the average in order to get a more stable measurement that does not account for spurious outliers. We also calculate the average value and other percentile values, which can be seen in the Detailed Statistics section below.
Detailed Statistics
The following tables contain the raw numbers presented by a simplified version of RTI Perftest for the Modern C# implementation. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Samples Sent |
50% (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
---|---|---|---|---|---|
32 |
331195 |
27 |
11 |
26 |
566 |
64 |
327532 |
28 |
9 |
26 |
550 |
128 |
327705 |
28 |
9 |
27 |
565 |
256 |
318323 |
28 |
10 |
27 |
543 |
512 |
310517 |
29 |
11 |
28 |
556 |
1024 |
58802 |
32 |
24 |
36 |
669 |
2048 |
244089 |
36 |
20 |
32 |
555 |
4096 |
58858 |
50 |
21 |
42 |
686 |
8192 |
58720 |
70 |
22 |
66 |
664 |
16384 |
56063 |
141 |
40 |
82 |
822 |
32768 |
23953 |
200 |
34 |
137 |
1055 |
63000 |
40663 |
239 |
85 |
152 |
941 |
Reliable
Sample Size (Bytes) |
Samples Sent |
50% (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
---|---|---|---|---|---|
32 |
290476 |
32 |
10 |
28 |
552 |
64 |
295827 |
31 |
12 |
28 |
551 |
128 |
284402 |
32 |
13 |
28 |
620 |
256 |
291292 |
31 |
13 |
28 |
561 |
512 |
281255 |
33 |
11 |
29 |
552 |
1024 |
58641 |
34 |
24 |
32 |
676 |
2048 |
242981 |
38 |
13 |
34 |
555 |
4096 |
58793 |
164 |
23 |
41 |
735 |
8192 |
57865 |
164 |
21 |
58 |
685 |
16384 |
55676 |
172 |
40 |
69 |
2011 |
32768 |
56685 |
169 |
35 |
116 |
981 |
63000 |
47060 |
204 |
75 |
138 |
915 |
Test Hardware
The following hardware was used to perform these tests:
Windows Nodes
Processor: Intel® Xeon® E-2186G 3.8GHz, 12M cache, 6C/12T, turbo (95W)
RAM: 16GB 2666MT/s DDR4 ECC UDIMM
NIC 1: Intel X550 Dual Port 10GbE BASE-T Adapter, PCIe Full Height
NIC 2: Intel Ethernet I350 Dual Port 1GbE BASE-T Adapter, PCIe Low Profile
OS: Windows Server 2019 -- Microsoft Visual Studio 2017 Professional (.NET 5).
Switch
Dell Networking S4048T-ON, 48x 10GBASE-T and 6x 40GbE QSFP+ ports, IO to PSU air, 2x AC PSU, OS9
The graph below shows the expected throughput behavior when performing a 1-1 communication in two Windows nodes in a 10Gbps network. The numbers are taken for strict reliable reliability scenarios.
Note
By default, RTI Perftest enables batching when performing a Maximum Throughput test. The batching feature allows sending more than one data sample per RTPS packet, improving network performance for small data sizes. See the RTI Connext DDS Core Libraries User’s Manual for more information on batching.
The batch maximum size is set by RTI Perftest to be 8192 bytes; after 8192 bytes, batching is not enabled.
Detailed Statistics
The following tables contain the raw numbers presented by a simplified version of RTI Perftest for the Modern C# implementation. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Total Samples |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
---|---|---|---|---|
32 |
55481661 |
701.7 |
0 |
0.00 |
64 |
50344710 |
1267.7 |
0 |
0.00 |
128 |
46249216 |
2330.3 |
0 |
0.00 |
256 |
37610842 |
3914.0 |
67808 |
0.18 |
512 |
27592222 |
5730.3 |
46272 |
0.17 |
1024 |
18100304 |
7301.4 |
3488 |
0.02 |
2048 |
10667807 |
8901.5 |
5124 |
0.05 |
4096 |
5793291 |
9572.0 |
3884 |
0.07 |
8192 |
2909675 |
9705.9 |
2212 |
0.08 |
16384 |
1463495 |
9472.0 |
759 |
0.05 |
32768 |
725860 |
9394.0 |
0 |
0.00 |
63000 |
386066 |
9574.8 |
107 |
0.03 |
Reliable
Sample Size (Bytes) |
Total Samples |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
---|---|---|---|---|
32 |
58157768 |
733.0 |
0 |
0.00 |
64 |
54429313 |
1372.9 |
0 |
0.00 |
128 |
47037334 |
2378.6 |
0 |
0.00 |
256 |
36038688 |
3625.3 |
0 |
0.00 |
512 |
22024976 |
4448.0 |
0 |
0.00 |
1024 |
11772889 |
4755.1 |
0 |
0.00 |
2048 |
6098805 |
4919.4 |
0 |
0.00 |
4096 |
3048435 |
4918.4 |
0 |
0.00 |
8192 |
1832040 |
5951.1 |
0 |
0.00 |
16384 |
1484522 |
9580.6 |
0 |
0.00 |
32768 |
737141 |
9514.5 |
0 |
0.00 |
63000 |
382258 |
9796.1 |
0 |
0.00 |
Test Hardware
The following hardware was used to perform these tests:
Windows Nodes
Processor: Intel® Xeon® E-2186G 3.8GHz, 12M cache, 6C/12T, turbo (95W)
RAM: 16GB 2666MT/s DDR4 ECC UDIMM
NIC 1: Intel X550 Dual Port 10GbE BASE-T Adapter, PCIe Full Height
NIC 2: Intel Ethernet I350 Dual Port 1GbE BASE-T Adapter, PCIe Low Profile
OS: Windows Server 2019 -- Microsoft Visual Studio 2017 Professional (.NET 5).
Switch
Dell Networking S4048T-ON, 48x 10GBASE-T and 6x 40GbE QSFP+ ports, IO to PSU air, 2x AC PSU, OS9