Skip to content

[perf] System.Memory.Span.** and System.Memory.ReadOnly.** performance regressions in Mono AOT x64 microbenchmarks from Preview 5 to Preview 7 #89247

Closed

Description

@kotlarmilos

Description

The following performance regressions occurred between the Preview 4 snapshot (May 2nd, 2023) and Preview 7 snapshot (July 19th, 2023).

The configuration used for the benchmarks is Mono AOT with LLVM on x64 ubuntu 18.04.

Name Baseline Value Compare Value % Difference
System.Net.Tests.Perf_WebUtility.HtmlDecode_Entities 793.41 1068.41 34.66
System.Memory.Span<Int32>.LastIndexOfValue(Size: 4) 10.6 30.11 184.06
System.Memory.Span<Int32>.IndexOfValue(Size: 512) 186.47 610.48 227.39
System.Memory.Span<Int32>.IndexOfValue(Size: 4) 11.31 40.59 258.89
System.Memory.Span<Int32>.BinarySearch(Size: 4) 20.89 21.95 5.07
System.Memory.Span<Char>.SequenceEqual(Size: 4) 23.92 33.69 40.84
System.Memory.Span<Char>.Reverse(Size: 4) 11.19 14.47 29.31
System.Memory.Span<Char>.LastIndexOfValue(Size: 4) 10.6 12.61 18.96
System.Memory.Span<Char>.IndexOfValue(Size: 512) 186.48 340.74 82.72
System.Memory.Span<Char>.IndexOfValue(Size: 33) 20.49 65.79 221.08
System.Memory.Span<Char>.IndexOfAnyFourValues(Size: 4) 28.18 39.38 39.74
System.Memory.Span<Byte>.Reverse(Size: 4) 23.92 27.06 13.13
System.Memory.Span<Byte>.LastIndexOfAnyValues(Size: 4) 12.2 19.55 60.25
System.Memory.Span<Byte>.IndexOfAnyTwoValues(Size: 4) 13.28 20.79 56.55
System.Memory.Span<Byte>.IndexOfAnyFourValues(Size: 4) 29.86 38.39 28.57
System.Memory.ReadOnlySpan.IndexOfString(input: だだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだxだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだ, value: x, comparisonType: Ordinal) 359.55 615.97 71.32
System.Memory.ReadOnlySpan.IndexOfString(input: だだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだすだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだ, value: す, comparisonType: Ordinal) 46.6 112.47 141.35
System.Memory.ReadOnlySpan.IndexOfString(input: Hello Worldbbbbbbbbbbbbbbcbbbbbbbbbbbbbbbbbbba!, value: y, comparisonType: Ordinal) 44.77 81.37 81.75
System.Memory.ReadOnlySpan.IndexOfString(input: Hello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello WorldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylongHello Worldbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbareallyreallylong!xyz, value: ~, comparisonType: Ordinal) 143.47 237.72 65.69
System.Memory.ReadOnlySequence.Slice_Start(Segment: Single) 10.32 12.79 23.93

Activity

  1. added this to the 8.0.0 milestone on Jul 20, 2023
  2. kotlarmilos commented on Jul 20, 2023

    @kotlarmilos
    MemberAuthor

    @EgorBo @MihaZupan We are trying to narrow down changes between May 2nd, 2023 and July 19th, 2023 that may have caused the regressions. If you are aware of any changes that might have potentially caused these regressions, please let us know.

    /cc: @vargaz

  3. MihaZupan commented on Jul 20, 2023

    @MihaZupan
    Member

    @kotlarmilos possibly #88101 or #86655 if the extra code affects Mono codegen somehow.
    In case Mono cares about AggressiveOptimization, #85819 removed that from a few of these.

  4. modified the milestones: 8.0.0, 9.0.0 on Aug 8, 2023
  5. locked and limited conversation to collaborators on Sep 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions