[WIP] Switch rustc allocator to mimalloc#62340
[WIP] Switch rustc allocator to mimalloc#62340gnzlbg wants to merge 9 commits intorust-lang:masterfrom
Conversation
|
@Zoxc I would prefer to only run the tests of this PR on the target that is used by perf. Do you know which one is it? (is it x86_64-unknown-linux-gnu with builtin LLVM ?) |
|
I'm not sure what you mean by that statement. I don't think try builds have much in the way of tests anyway. I tried mimalloc in #62073, but I just hooked the Rust allocation functions so LLVM was unaffected. Does this hook C functions too? |
|
Try builds do not have tests. @bors try |
[WIP] Switch rustc allocator to mimalloc [Here](https://www.microsoft.com/en-us/research/publication/mimalloc-free-list-sharding-in-action/), strong claims are made about the performance of mimalloc against pretty much every other widely-used allocator. This PR is the smallest-diff that hopefully allows us to do a perf run of rustc with mimalloc. Independently of the outcome, this is not intended to be merged upstream - hence tagged as WIP to prevent that. r? @Zoxc
That's a good question. I'll do a full build and use |
|
@rust-timer build f98cbb8 |
|
Success: Queued f98cbb8 with parent 8c6fb02, comparison URL. |
|
☀️ Try build successful - checks-azure, checks-travis |
|
Can we abort ? I found a better way to statically link this, that overrides |
|
Finished benchmarking try commit f98cbb8, comparison URL. |
|
The interesting thing here is |
|
|
|
So I've pushed a new commit that uses |
|
@bors try |
[WIP] Switch rustc allocator to mimalloc [Here](https://www.microsoft.com/en-us/research/publication/mimalloc-free-list-sharding-in-action/), strong claims are made about the performance of mimalloc against pretty much every other widely-used allocator. This PR is the smallest-diff that hopefully allows us to do a perf run of rustc with mimalloc. Independently of the outcome, this is not intended to be merged upstream - hence tagged as WIP to prevent that. r? @Zoxc
|
💔 Test failed - checks-azure |
|
Forgot to update the lock-file, fixed. |
|
@bors try |
|
⌛ Trying commit 6080cc6 with merge ce5ffa9d5cc2f0c5c91d9a830fb883543d83ba19... |
|
💔 Test failed - checks-azure |
|
According to https://docs.rs/mimalloc-sys/0.1.4/mimalloc_sys/ you have to use it like |
Done.
They aren't exposed in the bindings, but they are part of the static library when |
|
I've pushed |
|
@bors try |
|
⌛ Trying commit 17ee296 with merge 54c5aaddedc71854b080a8c33c08a07a0410c550... |
|
💔 Test failed - checks-azure |
|
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
|
@daanx the mimalloc version has been updated to the dev branch, that version is published on crates.io as 0.1.6-dev (you can find the sources in the dev branch of the Rust bindings here: https://github.com/gnzlbg/mimallocator/tree/dev - the version of mimalloc dev branch used is imported via a git submodule, you can see the exact commit it tracks here: https://github.com/gnzlbg/mimallocator/tree/dev/mimalloc-sys). The bindings are built with the @bors: try |
|
@gnzlbg: 🔑 Insufficient privileges: not in try users |
|
@bors try |
|
⌛ Trying commit dd4b146 with merge abbecd0b5fc6c66fcc0e7ec1d6874f6dabcef44a... |
|
💔 Test failed - checks-azure |
|
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
|
The error has been reported upstream: microsoft/mimalloc#77 (comment) |
|
@gnzlbg: 🔑 Insufficient privileges: not in try users |
|
@bors try |
|
⌛ Trying commit 60927dd with merge 9a2e5c9c86099b7aa035031f905e32e72aaa06b1... |
|
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
|
💔 Test failed - checks-azure |
Here, strong claims are made about the performance of mimalloc against pretty much every other widely-used allocator.
This PR is the smallest-diff that hopefully allows us to do a perf run of rustc with mimalloc.
Independently of the outcome, this is not intended to be merged upstream - hence tagged as WIP to prevent that.
r? @Zoxc