Skip to content

Major performance degradation introduced with 10.3.3 (UTF8 char fetch) #1272

@pl752

Description

@pl752

Hello, @cincuranet , I was fiddling with @fdcastel `s PR (#1203) when I have noticed that between used in his PR nuget 10.3.1 and master there was an update (10.3.3) which significantly affected performance and allocation rates when woring with UTF8 strings.

Method Job BuildConfiguration DataType Mean Error StdDev Ratio RatioSD Gen0 Gen1 Allocated Alloc Ratio
Fetch NuGet100 10.3.2 CHAR((...) UTF8 [28] 1.007 s 0.0261 s 0.0770 s 1.01 0.11 46000.0000 7000.0000 369.79 MB 1.00
Fetch Core100 10.3.3 CHAR((...) UTF8 [28] 2.131 s 0.0420 s 0.0810 s 2.13 0.18 543000.0000 112000.0000 4339.37 MB 11.73

Interesting fact is that the update was fixing an issue around the same place where one of my old PRs (#1252) was implementing optimizations directly related to affected methods. Related issue resulting in problematic fix bd0db88: #1213

Table relaed to my PR vs 10.3.1

Method Job BuildConfiguration DataType Mean Error StdDev Ratio RatioSD Gen0 Gen1 Allocated Alloc Ratio
Fetch NuGet100 ReleaseNuGet CHAR((...) UTF8 [28] 1.066 s 0.0398 s 0.1175 s 1.01 0.16 46000.0000 7000.0000 369.79 MB 1.00
Fetch Core100 Release CHAR((...) UTF8 [28] 1.161 s 0.0232 s 0.0683 s 1.10 0.14 46000.0000 7000.0000 369.79 MB 1.00

Can you, please, review my PR changes and check if they are correct (aka they won't reintroduce the fixed issue, tests are passing successfully meanwhile)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions