FairMQ
1.4.33
C++ Message Queuing Library and Framework
|
9 #ifndef FAIRMQBENCHMARKSAMPLER_H_
10 #define FAIRMQBENCHMARKSAMPLER_H_
12 #include "../FairMQLogger.h"
13 #include "FairMQDevice.h"
14 #include "tools/RateLimit.h"
58 LOG(info) <<
"Starting the benchmark with message size of " << fMsgSize <<
" and " << fMaxIterations <<
" iterations.";
59 auto tStart = std::chrono::high_resolution_clock::now();
67 for (
size_t i = 0; i < fNumParts; ++i) {
70 std::memset(parts.
At(i)->GetData(), 0, parts.
At(i)->GetSize());
74 if (dataOutChannel.
Send(parts) >= 0) {
75 if (fMaxIterations > 0) {
76 if (fNumIterations >= fMaxIterations) {
83 FairMQMessagePtr msg(dataOutChannel.NewMessage(fMsgSize,
fair::mq::Alignment{fMsgAlignment}));
85 std::memset(msg->GetData(), 0, msg->GetSize());
88 if (dataOutChannel.
Send(msg) >= 0) {
89 if (fMaxIterations > 0) {
90 if (fNumIterations >= fMaxIterations) {
99 rateLimiter.maybe_sleep();
103 auto tEnd = std::chrono::high_resolution_clock::now();
105 LOG(info) <<
"Done " << fNumIterations <<
" iterations in " << std::chrono::duration<double, std::milli>(tEnd - tStart).count() <<
"ms.";
113 size_t fMsgAlignment;
115 uint64_t fNumIterations;
116 uint64_t fMaxIterations;
117 std::string fOutChannelName;
Definition: FairMQMessage.h:25
std::unordered_map< std::string, std::vector< FairMQChannel > > fChannels
Device channels.
Definition: FairMQDevice.h:383
void AddPart(FairMQMessage *msg)
Definition: FairMQParts.h:48
FairMQParts is a lightweight convenience wrapper around a vector of unique pointers to FairMQMessage,...
Definition: FairMQParts.h:21
std::unique_ptr< FairMQMessage > & At(const int index)
Definition: FairMQParts.h:84
void Run() override
Runs the device (to be overloaded in child classes)
Definition: FairMQBenchmarkSampler.h:59
T GetProperty(const std::string &key) const
Read config property, throw if no property with this key exists.
Definition: ProgOptions.h:69
int64_t Send(FairMQMessagePtr &msg, int sndTimeoutInMs=-1)
Definition: FairMQChannel.h:260
void InitTask() override
Task initialization (can be overloaded in child classes)
Definition: FairMQBenchmarkSampler.h:47
fair::mq::ProgOptions * fConfig
Pointer to config (internal or external)
Definition: FairMQDevice.h:385
bool NewStatePending() const
Returns true if a new state has been requested, signaling the current handler to stop.
Definition: FairMQDevice.h:470
Wrapper class for FairMQSocket and related methods.
Definition: FairMQChannel.h:35
Definition: FairMQBenchmarkSampler.h:27
Definition: FairMQDevice.h:50
privacy