Skip to content

performance regression in 1.12.0-beta2 when summing over iterator #58370

Open
@matthias314

Description

@matthias314

I'm observing a 2.5x slowdown when summing over an iterator. The code

using Chairmarks

struct A end
struct B end
struct C end
struct D end
struct E end
struct F end

const U = Union{A, B, C, D, E, F}

f(a::A) = 1
f(b::B) = 2
f(c::C) = 3
f(d::D) = 4
f(e::E) = 5
f(f::F) = 6

v = U[rand((A(), B(), C(), D(), E(), F())) for _ in 1:1000];

gives

julia> @b sum(f, $v), sum(f, x for x in $v)
(431.909 ns, 1.771 μs)  # 1.11.5
(441.500 ns, 4.083 μs)  # 1.12.0-beta2
Julia Version 1.12.0-beta2
Commit dd74040f22b (2025-04-25 12:03 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, skylake)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 4 virtual cores)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions