Uh oh!
There was an error while loading. Please reload this page.
Revise VecPerParamSpace to use a one Vec rather than three - #15418
Conversation
pnkfelix
commented
Jul 4, 2014
@pcwalton I think you were right, that the memory usage increase was due to malloc slop. (That, or my |
sfackler
commented
Jul 4, 2014
There are some build errors in rustdoc: https://travis-ci.org/rust-lang/rust/jobs/29158017 |
pcwalton
commented
Jul 4, 2014
r=me with @huonw's comment change. |
This basically meant changing the interface so that no borrowed `&Vec` is exposed, by hiding `fn get_vec` and `fn get_mut_vec` and revising `fn all_vecs`. Instead, clients should use one of the other methods; `get_slice`, `pop`, `truncate`, `replace`, `push_all`, or `is_empty_in`, which should work for any case currently used in rustc.
In my informal measurements, this brings the peak memory usage when building librustc from 1662M down to 1502M. Since 1662 - 1502 = 160, this may not recover the entirety of the observed memory regression (250M) from PR rust-lang#14604. (However, according to my local measurements, the regression when building librustc was more like 209M, so perhaps this will still recover the lions share of the lost memory.)
…cwalton In my informal measurements, this brings the peak memory usage when building librustc from 1662M down to 1502M. Since 1662 - 1502 = 160, this may not recover the entirety of the observed memory regression (250M) from PR #14604. (However, according to my local measurements, the regression when building librustc was more like 209M, so perhaps this will still recover the lions share of the lost memory.)
huonw
commented
Jul 6, 2014
This did fix the vast majority of the regression: http://huonw.github.io/isrustfastyet/mem/#b00f4ec,e0d3cf6! (Saved 225 MB there, but there is some noise.) |
nikomatsakis
commented
Jul 7, 2014
Interesting. This provides some evidence for a hypothesis of mine: that aggressive use of |
pnkfelix
commented
Jul 7, 2014
@nikomatsakis if that hypothesis were true, then it would have sufficed to add I mention this because adding |
nikomatsakis
commented
Jul 9, 2014
I see, I didn't really read the patch and misunderstood what it did. Interesting! |
Fix signature help of methods from macros Currently the receiver type is copied from AST instead re-formatting through `HirDisplay`. Macro generated functions seem to have no spaces and their signature help are rendered like `fn foo(&'amutself)` instead of `fn foo(&'a mut self)`.
In my informal measurements, this brings the peak memory usage when
building librustc from 1662M down to 1502M. Since 1662 - 1502 = 160,
this may not recover the entirety of the observed memory regression
(250M) from PR #14604. (However, according to my local measurements,
the regression when building librustc was more like 209M, so perhaps
this will still recover the lions share of the lost memory.)