MCPcopy Create free account
hub / github.com/GongShichen/LuminaCode / BuildBenchmarkReport

Function BuildBenchmarkReport

benchmark/runner.go:13–64  ·  view source on GitHub ↗
(ctx context.Context, plugins []BenchmarkPlugin, options BuildReportOptions)

Source from the content-addressed store, hash-verified

11}
12
13func BuildBenchmarkReport(ctx context.Context, plugins []BenchmarkPlugin, options BuildReportOptions) (BenchmarkReport, error) {
14 core := BenchmarkCore{}
15 activeVariant := withTiers(variantOrDefault(options.Variant, VariantOverride{Name: "candidate", Description: "benchmark run"}), options.Tiers)
16 pluginResults := map[string]PluginRunResult{}
17 pluginRules := map[string][]PluginSLA{}
18 pluginOrder := make([]string, 0, len(plugins))
19 for _, plugin := range plugins {
20 result, err := core.RunSuite(ctx, plugin, &activeVariant)
21 if err != nil {
22 return BenchmarkReport{}, err
23 }
24 name := plugin.Name()
25 pluginResults[name] = result
26 pluginRules[name] = plugin.BuildSLARules()
27 pluginOrder = append(pluginOrder, name)
28 }
29 run := core.BuildRunWithOrder(activeVariant, pluginResults, pluginOrder)
30 verdict, err := core.Evaluate(run, pluginRules)
31 if err != nil {
32 return BenchmarkReport{}, err
33 }
34
35 var comparison *BenchmarkComparison
36 if options.BaselinePlugins != nil {
37 var baselineVariant VariantOverride
38 if options.BaselineProfile != nil {
39 profile, err := GetProfile(*options.BaselineProfile)
40 if err != nil {
41 return BenchmarkReport{}, err
42 }
43 baselineVariant = profile
44 } else {
45 baselineVariant = variantOrDefault(options.BaselineVariant, VariantOverride{Name: "baseline", Description: "benchmark baseline"})
46 }
47 activeBaselineVariant := withTiers(baselineVariant, options.Tiers)
48 baselineResults := map[string]PluginRunResult{}
49 baselineOrder := make([]string, 0, len(options.BaselinePlugins))
50 for _, plugin := range options.BaselinePlugins {
51 result, err := core.RunSuite(ctx, plugin, &activeBaselineVariant)
52 if err != nil {
53 return BenchmarkReport{}, err
54 }
55 name := plugin.Name()
56 baselineResults[name] = result
57 baselineOrder = append(baselineOrder, name)
58 }
59 baselineRun := core.BuildRunWithOrder(activeBaselineVariant, baselineResults, baselineOrder)
60 comparison = new(core.ComputeDeltas(baselineRun, run))
61 }
62
63 return core.BuildBenchmarkReport(comparison, verdict, run, pluginRules), nil
64}
65
66func variantOrDefault(variant *VariantOverride, fallback VariantOverride) VariantOverride {
67 if variant == nil {

Calls 9

RunSuiteMethod · 0.95
BuildRunWithOrderMethod · 0.95
EvaluateMethod · 0.95
BuildBenchmarkReportMethod · 0.95
withTiersFunction · 0.85
variantOrDefaultFunction · 0.85
GetProfileFunction · 0.85
NameMethod · 0.65
BuildSLARulesMethod · 0.65