17#include "../src/WorkflowHelpers.h"
18#include <benchmark/benchmark.h>
27 std::vector<std::unique_ptr<ParamRetriever>> retrievers;
28 static std::vector<ConfigParamSpec> specs;
29 auto store = std::make_unique<ConfigParamStore>(specs, std::move(retrievers));
34 auto context = std::make_unique<ConfigContext>(registry,
ServiceRegistryRef{services}, 0,
nullptr);
38static void BM_CreateGraphOverhead(benchmark::State& state)
41 for (
auto _ :
state) {
42 std::vector<InputSpec> inputSpecs;
43 std::vector<OutputSpec> outputSpecs;
45 for (
size_t i = 0;
i <
state.range(); ++
i) {
47 inputSpecs.emplace_back(
InputSpec{
"y",
"TST",
"A", subSpec});
48 outputSpecs.emplace_back(
OutputSpec{{
"y"},
"TST",
"A", subSpec});
57 std::vector<DeviceConnectionEdge> logicalEdges;
58 std::vector<OutputSpec> outputs;
59 std::vector<LogicalForwardInfo> availableForwardsInfo;
62 throw std::runtime_error(
"invalid workflow");
69 availableForwardsInfo);
73BENCHMARK(BM_CreateGraphOverhead)->Range(1, 1 << 10);
75static void BM_CreateGraphReverseOverhead(benchmark::State& state)
78 for (
auto _ :
state) {
79 std::vector<InputSpec> inputSpecs;
80 std::vector<OutputSpec> outputSpecs;
82 for (
size_t i = 0;
i <
state.range(); ++
i) {
85 inputSpecs.emplace_back(
InputSpec{
"y",
"TST",
"A", subSpec});
86 outputSpecs.emplace_back(
OutputSpec{{
"y"},
"TST",
"A", subSpecReverse});
95 std::vector<DeviceConnectionEdge> logicalEdges;
96 std::vector<OutputSpec> outputs;
97 std::vector<LogicalForwardInfo> availableForwardsInfo;
100 throw std::runtime_error(
"invalid workflow");
106 availableForwardsInfo);
110BENCHMARK(BM_CreateGraphReverseOverhead)->Range(1, 1 << 10);
std::unique_ptr< ConfigContext > makeEmptyConfigContext()
BENCHMARK(BM_CreateGraphOverhead) -> Range(1, 1<< 10)
Defining PrimaryVertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
static void constructGraph(const WorkflowSpec &workflow, std::vector< DeviceConnectionEdge > &logicalEdges, std::vector< OutputSpec > &outputs, std::vector< LogicalForwardInfo > &availableForwardsInfo)
static void injectServiceDevices(WorkflowSpec &workflow, ConfigContext &ctx)
static WorkflowParsingState verifyWorkflow(const WorkflowSpec &workflow)