Skip to content

Performance has gotten significantly worse #2719

Closed

Description

@brson

Rustbot shows graph500-bfs, rustc, k-nucleotide, mandelbrot, and others as losing a lot of perf.

graph500-bfs went from a few seconds to thousands of seconds. Rustbot fingers 1d6fb24 as the culprit.

Activity

  1. eholk commented on Jun 25, 2012

    @eholk
    Contributor

    It seems like there's a good chance this is related to me moving vector append into the library. I'm making a few tweaks now that should improve performance.

  2. eholk commented on Jun 25, 2012

    @eholk
    Contributor

    Actually, after looking at the graphs some more, it looks like my change isn't responsible for the latest perf regression. That said, there's still a few v += [x] expressions that can be replaced with push(v, x).

  3. msullivan commented on Jun 26, 2012

    @msullivan
    Contributor

    Tracked it down. It looks like the libcore vector code was (accidentally) not getting called until my patch landed.

    So the regression is due to moving vec append to the library, and the extra copies that causes.

  4. eholk commented on Jun 26, 2012

    @eholk
    Contributor

    I just did a grep for += [ over the whole tree, and there are still a lot of singleton vector appends to track down. This should win back the perf we lost on rustc.

    How hard would it be to let us pass self by - or +? This seems like a better long term fix than telling everyone just to use vec::push.

    The issue for allowing modes on self is #2585.

  5. pcwalton commented on Jun 26, 2012

    @pcwalton
    Contributor

    I think dvec is probably the real long-term fix, no?

  6. added a commit that references this issue on Jun 26, 2012
  7. eholk commented on Jun 26, 2012

    @eholk
    Contributor

    @msullivan just pointed out that vec::push_all and vec::append are doing a lot of unnecessary bounds checks that could probably be removed using unsafe code. This could gain some of our speed back.

  8. catamorphism commented on Jun 28, 2012

    @catamorphism
    Contributor

    @eholk and @msullivan : is this resolved for now?

  9. eholk commented on Jun 28, 2012

    @eholk
    Contributor

    The perf bots are still showing that we're about 5 seconds behind where we used to be on rustc. There's definitely more work to do, but to me the performance is tolerable again.

    I can keep trying to win back those 5 seconds if people don't want to take the hit.

  10. eholk commented on Jun 29, 2012

    @eholk
    Contributor

    I replaced pretty much all the calls to + with various append, push, push_all, append_one calls, and now rustc is faster than it was before.

  11. brson commented on Jun 29, 2012

    @brson
    ContributorAuthor

    Nice work @eholk!

  12. added a commit that references this issue on Dec 24, 2022
  13. added a commit that references this issue on Jan 6, 2023
  14. added a commit that references this issue on Jan 12, 2026
  15. added a commit that references this issue on Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-slowIssue: Problems and improvements with respect to performance of generated code.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions