Skip to content

Benchmark(Baseline = true) doesn't work when using byte[] arrays in Params() #791

Open
@IanKemp

Description

@IanKemp
    public class ToBase64UrlEncodedString
    {
        [Params(new byte[] { 57, 48, 0, 0, 1, 39, 2, 0, 0, }, new byte[] { 57, 48, 0, 0, 0, 0, 0, 0, 0, })]
        public byte[] From { get; set; }

        [Benchmark(Baseline = true)]
        public string Convoluted()
        {
            return ImageUrlEncryptor.ToBase64UrlEncodedString(From);
        }

        [Benchmark]
        public string Microsoft_IdentityModel_Tokens()
        {
            return ImageUrlSafe.ToBase64UrlEncodedString(From);
        }
    }

Results in:

C:\Working\Console2\Console2\bin\Release> .\Console2.exe
// ***** BenchmarkRunner: Start   *****
// Found benchmarks:
//   ToBase64UrlEncodedString.Convoluted: InProcess(Toolchain=InProcessToolchain [From=System.Byte[]]
//   ToBase64UrlEncodedString.Convoluted: InProcess(Toolchain=InProcessToolchain) [From=System.Byte[]]
//   ToBase64UrlEncodedString.Microsoft_IdentityModel_Tokens: InProcess(Toolchain=InProcessToolchain) [From=System.Byte[]]
//   ToBase64UrlEncodedString.Microsoft_IdentityModel_Tokens: InProcess(Toolchain=InProcessToolchain) [From=System.Byte[]]

// Validating benchmarks:
Only 1 benchmark method in a group can have "Baseline = true" applied to it, group InProcess(Toolchain=InProcessToolchain)-[From=System.Byte[]] in class ToBase64UrlEncodedString has 2
// * Artifacts cleanup *

Is this a supported scenario?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions