blob: ce732931745292ae11ce2294d2c58b92a2fadd4d [file] [log] [blame]
#include <benchmark/benchmark.h>
#include "rocketmq.h"
#include "rocketmq-client-cpp-full.h"
#include <cstring>
static void BM_ProducerSendMessage(benchmark::State &state) {
state.PauseTiming();
graal_isolatethread_t *thread_;
graal_create_isolate(NULL, NULL, &thread_);
factory_property property = {
.group_id = "GID_opensource_unit_test",
.access_key = "AK",
.access_secret = "SK",
.name_srv_addr =
"47.100.33.127:9876"};
int instance_id = create_producer(thread_, &property);
char *data = new char[state.range(0)];
message m;
m.topic = "t_opensource_unit_test";
m.tags = "tagA";
m.body = data;
m.body_size = state.range(0);
m.key = "abc";
send_result sr;
state.ResumeTiming();
for (auto _ : state) {
send_message(thread_, instance_id, &m, &sr);
}
delete[](data);
destroy_instance(thread_, instance_id);
graal_detach_thread(thread_);
}
BENCHMARK(BM_ProducerSendMessage)->RangeMultiplier(2)->Range(1<<6, 1<<10)->UseRealTime()->Unit(benchmark::kMillisecond);
BENCHMARK_MAIN();