James Liu
James Liu
Seems like https://github.com/rust-lang/rust/pull/97925 has been merged and was released as a part of 1.63, so I think the issues there have been addressed.
Did a quick round of benchmarks. Generally looks to be unchanged, though there are some regressions, particularly with `Query::iter`. I have an idea on how to address it. The main...
Attempted to merge the entities and rows into one Vec to make it easier for sparse iteration. It seems to address the sparse iteration issues. ``` group fetch-cleanup fetch-cleanup-with-archetype-entity main...
> @james7132 are the Todo comments from the PR description addressed now? Yep more or less ready now.
It branches on a constant, just like in `set_table/set_archetype`, so it should mark the unmatched branch unreachable and completely remove it at compile time. Even with just a singular fetched...
> Why were so many `#[inline]` changed to `#[inline(always)]` did you benchmark this and it improved stuff? The optimization strategy here strictly relies on having the fetch/filter_fetch calls inlined so...
I have not run a microbenchmark with larger queries, but I know we have some really big ones in rendering and other parts of the engine, so as a sanity...
As for a more detailed explanation of why this seems to work, see #5064. In particular, this removes a bunch of the `unwrap_or_else(|| debug_checked_unreachable())` calls,, which are otherwise unavoidable, with...
I want to redo those stage timing measurements. There's been quite a few optimizations merged in since that was last measured, and I'm sure this is still not a regression,...
Redid the `many_cubes` measurements. Looks to be a net gain across the board here. Included a few of the systems that are strictly iteration bound as well. |stage/system|main|this PR| |:--|:--|:--|...