-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Try using new_zeroed_slice
to optimize f.mvs
with zeroed allocations
#1360
base: main
Are you sure you want to change the base?
Conversation
d6a6749
to
513891b
Compare
Thanks! I'll try this out and report back. |
… zeroed allocations to optimize out initialization, and use this on `f.mvs`.
513891b
to
7f8c74a
Compare
……) as *const _)` (#1361) As @Darksonn [pointed out](#1360 (comment)), using `mem::transmute` on an `Arc` is unsound since it's not `#[repr(transparent)]`, and we need to go through `Arc::into_raw` and `Arc::from_raw` with a ptr cast instead.
I've been investigating this and unfortunately I'm still seeing roughly the same number of page-faults -- maybe a marginal drop, but hard to tell if it's just noise. It's still an order of magnitude more page faults than seen in dav1d. Similarly, the number of context switches and overall performance seem to be largely unaffected. I'm trying to isolate where these are now occurring. I haven't had luck narrowing it down yet, but wanted to at least provide an update here. |
Thanks for the update! Let me try one more small thing first (when I have some time). |
The page-faults are now originating in
Since I was already collecting performance numbers, I confirmed that the number of page-faults versus frames processed in
These numbers are noisy of course, but the trend seems consistent. |
Whoops, sorry I didn't see this reply/update for a while.
Thanks, this is useful. We should really fix this. |
…th doesn't change.
@ivanloz, could you see if this fixes/changes the performance issue you found in #1358?
This uses
#![feature(new_zeroed_alloc)]
(rust-lang/rust#129396) by the way, which will hopefully be stabilized soon after#![feature(new_uninit)]
was just stabilized in 1.82