EgorBot / runtime-utils

MIT License
0 stars 1 forks source link

EgorBot for EgorBo in #107116 #33

Closed EgorBot closed 1 month ago

EgorBot commented 2 months ago

ff

EgorBo commented 1 month ago

@EgorBot -help

EgorBot commented 1 month ago

EgorBot manual

Usage: @EgorBot [-%target%] [-profiler] [raw args for BDN] `C# snippet surrounded with triple ticks`
-%target%:       Can be -arm64, -amd or -intel. Or multiple at once, e.g. '-arm64 -intel'
                 -intel is used when none of the targets are specified.
                 There are also experimental AWS targets.

-profiler:       Use 'perf record' to collect a flamegraph/hot asm.

-perf_events     Exact events to collect with 'perf', e.g. -perf_events ld_align_lat
                 (events are target-specific, you can find the list of the supported events in BDN_Artifacts.zip
                 when you run a benchmark with -profiler arg).

-commit:         E.g. '-commit 72ea87f vs 380898a' or just '-commit 72ea87f'
                 Runs the benchmark on the specified commit(s) (PR is ignored)

-mono:           Use Mono runtime instead of CoreCLR for all targets. Should be possible to use
                 Mono interp too (LLVM is not supported yet).
                 Mono doesn't support -profiler (at least JIT)
                 To use mono-interp, use BDN args, e.g. --envvars MONO_ENV_OPTIONS:"--interpreter"

-nonativepgo:    Disable native PGO (Build with /p:NoPgoOptimize=true)

-pr %num%:       Run for changes in a specific PR. If bot is invoked from a PR - it takes changes
                 from that PR implicitly.

-[args for BDN]: Args directly passed to BDN e.g. '--disasm', see
                 https://github.com/dotnet/BenchmarkDotNet/blob/master/docs/articles/guides/console-args.md

All targets are Linux-only at the moment. NOTE: BenchmarkRunner.Run or BenchmarkSwitcher.From* can be omitted (snippet without an entrypoint) Although, if they're presented then Program's args must be be forwarded to Run(args: args)

NOTE: [DisassemblyDiagnoser] may cause unexpected crashes in BDN on Linux (at least on x64)

Examples: -intel -arm64 -perf --envvars DOTNET_JitDisasm:Foo

Usage example: link

EgorBot commented 1 month ago

cc @EgorBo