ipc-bench | : racehorse : Benchmarks for Inter-Process-Communication

 by   goldsborough C Version: Current License: MIT

kandi X-RAY | ipc-bench Summary

kandi X-RAY | ipc-bench Summary

ipc-bench is a C library typically used in Server applications. ipc-bench has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

A sample implementations and benchmarks for various inter-process-communication (IPC) methods on Linux and OS X.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              ipc-bench has a low active ecosystem.
              It has 492 star(s) with 82 fork(s). There are 18 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 8 open issues and 18 have been closed. On average issues are closed in 262 days. There are 2 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of ipc-bench is current.

            kandi-Quality Quality

              ipc-bench has 0 bugs and 0 code smells.

            kandi-Security Security

              ipc-bench has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              ipc-bench code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              ipc-bench is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              ipc-bench releases are not available. You will need to build from source code and install.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of ipc-bench
            Get all kandi verified functions for this library.

            ipc-bench Key Features

            No Key Features are available at this moment for ipc-bench.

            ipc-bench Examples and Code Snippets

            No Code Snippets are available at this moment for ipc-bench.

            Community Discussions

            QUESTION

            Low-latency communication of micro-services in remote, IPC and threading scenarios
            Asked 2019-Jun-13 at 16:17

            I want to create an ultra fast message processing C++ solution which will be CPU bound and micro-services based. It will process lots of request/response messages that are small enough (32 bytes to 1kb per message).

            Some services will be placed in different hosts. Some will be on the same host, but in different processes. And some inside the same process, but in different threads.

            Currently I'm thinking about communication protocols for such services topology. My first idea was to use TCP-based communication which allows to use loopback for IPC communication on the same host and even for threading communication. The benefit is to have a single communication code which allows to experiment with services topology. It will be easy to host service inside some process or move it to the remote host.

            However I understand that if I want to have a low-latency solution with max RPS and speed of message delivery I have to split transport depending on communication type:

            • Threads communication - the best results could be achieved with circular buffer or LMAX Disruptor pattern.

            • IPC communication - I think pipes or circular buffer in shared memory are good solutions. Is there a better way to do IPC?

            • Remote communication - async TCP server/client for sequential message delivery and UDP for multicasting.

            Also I'm thinking about Linux solution, but having cross-platform would be great!

            I believe Asio C++ Library is a good starting point for remote communications.

            My questions are the following:

            1. Is it worth creating a custom IPC/threading communication solutions or should I start with TCP-based localhost communications?
            2. Can anyone provide me with some performance comparison results of different IPC techniques (locahost tcp vs pipes vs shared memory) for best RPS of small messages up to 1kb? (E.g. shared memory will be 10-times faster than localhost TCP and 3-times faster than pipes or approximate RPS values to compare).
            3. Maybe I missed some good low-lattency IPC/RPC technique or library that I should look into?
            4. Or perhaps some production-ready solution exists for my problem that I can use or purchase the license?

            Thanks in advance for your answers and suggestions!

            IPC benchmarks

            I just found and performed low-level IPC benchmarks under Linux (Linux ubuntu 4.4.0 x86_64 i7-6700K 4.00GHz). Message size was 128 bytes and messages count is 1000000. I get following results:

            Pipe benchmark:

            ...

            ANSWER

            Answered 2019-Jan-08 at 12:48

            You wrote:

            an ultra fast message processing C++ solution

            That usually means getting hands into everything. Sounds like an interesting library in the end though if you pull it off.

            Overall your question is (way) too broad - nevertheless here are my thoughts:

            1. Hard to give any advice here...

            2. Comparisons will be platform/system specific. Eg. TCP may be faster or slower depending on the system.

            3. OpenMP and boost interprocess comes to mind.

            4. You may wan't to look into or start out with for example apache thrift library (albeit its also cross-language - original developed for facebook backend servers i believe) you may do some early experimenting perhaps and get a feel for some issues to consider.

            Source https://stackoverflow.com/questions/54091672

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install ipc-bench

            You can download it from GitHub.

            Support

            Contributions are welcome, as long as they fit within the goal of this benchmark: sequential single-node communication. Just open an issues or send a pull request.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/goldsborough/ipc-bench.git

          • CLI

            gh repo clone goldsborough/ipc-bench

          • sshUrl

            git@github.com:goldsborough/ipc-bench.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular C Libraries

            linux

            by torvalds

            scrcpy

            by Genymobile

            netdata

            by netdata

            redis

            by redis

            git

            by git

            Try Top Libraries by goldsborough

            lru-cache

            by goldsboroughC++

            clang-expand

            by goldsboroughC++

            ig

            by goldsboroughPython

            Writer-Tutorial

            by goldsboroughPython

            microservice-rs

            by goldsboroughRust