EgorBot / runtime-utils

MIT License
0 stars 1 forks source link

EgorBot for EgorBo in #8 #5

Open EgorBot opened 2 months ago

EgorBot commented 2 months ago

Processing https://github.com/EgorBo/UtilsRunner/issues/8#issuecomment-2323380074

EgorBot commented 2 months 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. '-amd -intel' -intel is used when none of the targets are specified. -profiler: Use 'perf record' to collect a flamegraph/hot asm - shouldn't be used when the given benchmark snippet contains more than one [Benchmark] Disabled by default. -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" Disabled by default. -perflab: Run dotnet/performance microbenchmarks (consider running with --filter) -[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](https://github.com/dotnet/runtime/pull/99871#issuecomment-2138361905)
EgorBot commented 2 months ago

cc @EgorBo