{"id":40917438,"url":"https://github.com/rticommunity/rtiperftest","last_synced_at":"2026-01-22T03:17:29.921Z","repository":{"id":14679186,"uuid":"66400745","full_name":"rticommunity/rtiperftest","owner":"rticommunity","description":"RTI Perftest is a command-line application that measures the Latency and Throughput of very configurable scenarios that use RTI Connext DDS middleware to send messages.","archived":false,"fork":false,"pushed_at":"2025-04-04T12:10:45.000Z","size":9686,"stargazers_count":54,"open_issues_count":4,"forks_count":23,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-04T13:25:05.564Z","etag":null,"topics":["connextdds","dds","latency","latency-test","maximum-throughput","measure","multicast","performance","rti","rti-perftest","throughput","throughput-test"],"latest_commit_sha":null,"homepage":"https://community.rti.com/static/documentation/perftest/current/index.html","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rticommunity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-23T20:27:26.000Z","updated_at":"2025-04-04T12:10:00.000Z","dependencies_parsed_at":"2023-01-11T20:22:18.618Z","dependency_job_id":"868bfe88-ffe1-4866-9626-fc2d51d2601d","html_url":"https://github.com/rticommunity/rtiperftest","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/rticommunity/rtiperftest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Frtiperftest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Frtiperftest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Frtiperftest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Frtiperftest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rticommunity","download_url":"https://codeload.github.com/rticommunity/rtiperftest/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rticommunity%2Frtiperftest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28652074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["connextdds","dds","latency","latency-test","maximum-throughput","measure","multicast","performance","rti","rti-perftest","throughput","throughput-test"],"created_at":"2026-01-22T03:17:29.608Z","updated_at":"2026-01-22T03:17:29.913Z","avatar_url":"https://github.com/rticommunity.png","language":"C++","readme":"\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/rticommunity/rtiperftest\"\u003e\n    \u003cimg src=\"srcDoc/_static/RTI_Launcher_Icon_Perftest_150x150.png\" alt=\"RTI Perftest\" width=\"100\" height=\"100\"\u003e\n  \u003c/a\u003e\n\n  \u003ch1 align=\"center\"\u003e\u003cstrong\u003eRTI Perftest\u003c/strong\u003e\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003cem\u003eRTI's Network Performance Benchmarking Tool\u003c/em\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://community.rti.com/static/documentation/perftest/current/index.html\"\u003e\u003cstrong\u003eExplore the documentation »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/rticommunity/rtiperftest/releases#binaries\"\u003eBinaries\u003c/a\u003e\n    ·\n    \u003ca href=\"https://community.rti.com/static/documentation/perftest/current/download.html#download-instructions\"\u003eDownload\u003c/a\u003e\n    ·\n    \u003ca href=\"https://community.rti.com/static/documentation/perftest/current/compilation.html\"\u003eCompile\u003c/a\u003e\n    ·\n    \u003ca href=\"https://community.rti.com/static/documentation/perftest/current/execution.html\"\u003eExecution\u003c/a\u003e\n    ·\n    \u003ca href=\"https://community.rti.com/static/documentation/perftest/current/examples.html\"\u003eExamples\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## \u003cstrong\u003eOverview\u003c/strong\u003e\n\n**RTI Perftest** is a command line tool intended to measure the minimum latency,\nmaximum throughput and loaded latency in a very configurable set of scenarios.\nIt can help you answer questions such as:\n\n* For a given publishing configuration (e.g., queue size, batching settings), sample size, and subscribing configuration (e.g., queue size, Listener vs. WaitSet), what is the throughput of my network?\n* When my network is heavily loaded, what latency can I expect?\n* For a given configuration, what is the best-case latency with no other traffic on the network?\n\n### _How does it work_\n\nThe publishing side of the test writes data as fast as it can. Every few samples (configured through the command line), it sends a special sample requesting an echo from the subscribing side. It uses this ping -\u003e pong exchange to measure the round-trip time latency (RTT) and then the one-way latency.\n\nThe publisher prints the latency test results while the subscriber prints the throughput results.\n\n\u003cimg src=\"srcDoc/_static/PerfTest_Overview_Diagram_white.png\" alt=\"**RTI Perftest** Overview Diagram\" \u003e\n\n**RTI Perftest** allows 2 operational modes: _Throughput Test_ and _Latency Test_\n\nLearn more [here »](https://community.rti.com/static/documentation/perftest/current/introduction.html)\n\n## \u003cstrong\u003eFeatures\u003c/strong\u003e\n\n**RTI Perftest** features include:\n* Supports **RTI Connext DDS Professional** and **RTI Connext DDS Micro**.\n* Suppots multiple platform including Windows, Linux, Mac, VxWorks or Android.\n* Supports multiple test setups - Multicast, One-to-many communication (Pub -\u003e Sub), Latency test, Throughput test, Latency vs Throughput test.\n* Supports using raw transports (UDPv4 Sockets and Shared Memory segments).\n* Suports benchmarking Connext Pro and Micro features such as Flat Data and Zero Copy.\n\n## \u003cstrong\u003eGetting Started\u003c/strong\u003e\n\nThis is an example of how you may give instructions on setting up your project locally.\nTo get a local copy up and running follow these simple example steps.\n\n### _Download_\n\n**RTI Perftest** bundle is provided in 3 different ways:\n\n1. Clone and compile from the official Github repository:\n```sh\ngit clone https://github.com/rticommunity/rtiperftest.git\n```\n\n2. Download and compile from: github.com/rticommunity/rtiperftest.\n\n3. Download the executables for popular platforms from: https://github.com/rticommunity/rtiperftest/releases in the “Binaries” section of the **RTI Perftest** release page.\n\nTo learn more about the supported platforms and installation, please refer to the\n[Documentation](https://community.rti.com/static/documentation/perftest/current/download.html).\n\n\n### _Requisites_\n\nIf you need to compile **RTI Perftest** these are the 2 main requisites. This is not\nneeded if you downloaded the executables already compiled, you can skip this section.\n\n* **RTI Connext DDS Professional** or **RTI Connext DDS Micro** should be installed\n  in the system where the build.sh script is going to run. The Target libraries for\n  the platform to be generated should also be installed.\n* The `$NDDSHOME` environment variable should be set correctly. Alternatively,\n  `$NDDSHOME` can be passed directly to the `build.sh` script by using the `--nddshome \u003cPATH\u003e` command-line option.\n* If you intend to compile and test using *RTI Security Plugins*, you will need to\n  link against the OpenSSL libraries for your architecture.\n\nLearn more [here »](https://community.rti.com/static/documentation/perftest/current/introduction.html)\n\n### _Compile_\nFor Linux, MacOS, QNX, VxWorks, Lynx, and Android, **RTI Perftest** makes use of a script in the top level directory named ```build.sh```. In order to build using ```build.sh``` you just need to invoke the script with the command-line parameters desired. \n\nFor example, for a given architecture (x64Darwin15clang7.0) for C++ (traditional and modern) and Java the command would be\n\n```sh\n./build.sh --platform x64Darwin15clang7.0\n```\n\nLearn more about compilation for other platforms and examples [here »](https://community.rti.com/static/documentation/perftest/current/compilation.html)\n\n\n## \u003cstrong\u003eUsage\u003c/strong\u003e\nThe following are examples of how to run the performance test for two use cases:\n\n* The tests below print final results only; if you want to see intermediate values, remove the ```-noprint``` argument from the command line.\n* If you are running on two unequal machines---i.e., one machine is faster (has better processors) than another---you will see better performance by running the Publisher on the slower machine.\n\n### Example 1: 1-to-1, Unicast, Best Latency as a Function of Message Size\n\nPublisher:\n\n```sh\n  bin/\u003carch\u003e/release/perftest_cpp -pub -noPrint -nic \u003cipaddr\u003e -dataLen \u003clength\u003e -latencyTest -executionTime 100\n```\n\nSubscriber:\n\n```sh\n  bin/\u003carch\u003e/release/perftest_cpp -sub -noPrint -nic \u003cipaddr\u003e -domain \u003cID\u003e -multicast\n```\n\nModify ```-dataLen \u003cbytes\u003e ```to see latencies for different data sizes. Set ```-executionTime \u003cseconds\u003e```\nto be \u003e=100 for statistically better results.\n\n### Example 2: 1-to-1, Multicast, Maximum Throughput as a Function of Message Size (with Batching)\nPublisher:\n```sh\nbin/\u003carch\u003e/release/perftest_cpp -pub -noPrint -nic \u003cipaddr\u003e -dataLen \u003clength\u003e -batchSize \u003cbytes\u003e -multicast -executionTime 100\n```\nSubscriber:\n```sh\nbin/\u003carch\u003e/release/perftest_cpp -sub -noprint -nic \u003cipaddr\u003e -multicast\n```\n\nTo achieve maximum throughput, start by setting See ```-batchSize \u003cbytes\u003e``` to 8192, then increase the size to see if you get better throughput.\n\n_Note: Batching will not be enabled if the data length is larger than 1/2 the batch size._\n\n### More examples\n\nSee more examples [here »](https://community.rti.com/static/documentation/perftest/current/examples.html)\n\n## \u003cstrong\u003eConfiguring RTI Perftest\u003c/strong\u003e\n\nSee how to configure **RTI Perftest** [here »](https://community.rti.com/static/documentation/perftest/current/command_line_parameters.html)\n\n## \u003cstrong\u003eLicense\u003c/strong\u003e\n\nDistributed under the EPL License. See the [license](LICENSE.md) file for more information.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frticommunity%2Frtiperftest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frticommunity%2Frtiperftest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frticommunity%2Frtiperftest/lists"}