Skip to content

major treemap performance regression (and maybe regressions elsewhere?) #4857

@thestinger

Description

@thestinger

I bisected this and determined that it was caused by 0682ad0. It seems the compiler is replacing what should be moves with copies - rather than just calling a real destructor once, the remove function does tons of paired allocation/destruction and ends up being at least 100x slower with >10k elements (it's actually worse than just a constant factor).

@nikomatsakis tested this against the patch from #4848 (by coincidence of that being what he had handy :P) and it was fixed or at least not nearly as bad, but it would probably be good to investigate this a bit more.

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