Skip to content

Lyphion/ipc-performance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Performance analysis of inter-process Communication

This project contains data structures and methods for inter-process communication. It aims to analyse the impact on the performance of different communication techniques on Unix systems.

Communication structure

All communication will be managed via a common communication interface (ICommunicationHandler), method and object structure (IDataObject). When sending messages a header (DataHeader) will be created and prepended before the actual message, to make it identifiable for the receiver. This header consists of an id, type, size and timestamp. Afterward the actual message will be appended. The structure of the serialized message depends on the implementation.

Currently, the following handlers are implemented:

All data object must be defined via a DataType, as an implementation of (IDataObject) and as a possible return type via ICommunicationHandler::DataObject. The utility file utility.hpp will help to deserialize each object by its type.

Benchmarks

To test the performance of each communication technique a couple of benchmarks are implemented:

  • Latency (Measuring the latency for a Ping message between writing and reading)
  • Execution time (Measuring the execution time for the read and write call with different messages sizes)
  • Throughput (Measuring the total throughput of a fixed amount of messages and size)
  • Real World Data (Sending prerecorded data and check how often the deadline for sending will be missed)

About

Performance analysis of inter-process Communication

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published