Skip to content
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

Pool ActiveQuerys in the query stack #629

Draft
wants to merge 91 commits into
base: master
Choose a base branch
from

Conversation

Veykril
Copy link
Member

@Veykril Veykril commented Dec 13, 2024

ActiveQuery is 192 bytes and has a couple of collections within it (2 of which are not extract) that we can potentially re-use the allocations for. So pooling those instead of creating, pushing and popping the query from the stack might be beneficial to perf.

Seems like we have small perf improvements.

Based on top of #603

Copy link

netlify bot commented Dec 13, 2024

Deploy Preview for salsa-rs canceled.

Name Link
🔨 Latest commit c2e00ab
🔍 Latest deploy log https://app.netlify.com/sites/salsa-rs/deploys/67bb32fca5dfdf00080323d5

Copy link

codspeed-hq bot commented Dec 13, 2024

CodSpeed Performance Report

Merging #629 will not alter performance

Comparing Veykril:veykril/push-vznumyusmzww (5d9e78c) with master (4b74edf)

Summary

✅ 9 untouched benchmarks

@Veykril Veykril changed the title Do not pass ownership of the QueryStack in `Runtime::block_on_or_un… Pool ActiveQuerys in the query stack Dec 13, 2024
@Veykril Veykril marked this pull request as ready for review December 14, 2024 10:50
* master:
  Add unit tests for AtomicInputAccumulatedValues and OptionalAtomicRevision
  Replace `crossbeam` dependency with `crossbeam-queue`
  Remove unnecessary `Mutex` from singleton initialization
  Drop unnecssary usages of `AtomicCell`
* master:
  Drop unnecessary `AtomicRevision`
  Mark `MemoTable` methods that evict entries unsafe
  LRU eviction at revision bump
@Veykril Veykril force-pushed the veykril/push-vznumyusmzww branch from f3f6cc4 to 5d9e78c Compare February 17, 2025 12:50
@Veykril Veykril marked this pull request as draft February 17, 2025 12:52
carljm and others added 9 commits February 19, 2025 23:26
* master:
  ci: use `release-plz` for release
  internal: switch to `boxcar` from `append-only-vec`
  Deduplicate `Storage` and `StorageHandle` fields
  More test cases for `tracked_fn_return_ref`
  Emit better diagnostic for invalid tracked function return types
  `black_box` benchmark inputs and outputs
  Introduce `RefUnwindSafe` `StorageHandle`
  add guide of releasing
  add release workflow
* master:
  Reduce method delegation duplication
  Automatically clear the cancellation flag when cancellation completes
  Allow trigger LRU eviction without increasing the current revision
  Simplify `Ingredient::reset_for_new_revision` setup
  Require mut Zalsa access for setting the lru limit
  Split off revision bumping from `zalsa_mut` access
* master:
  Remove some `ZalsaDatabase::zalsa` calls
  Remove outdated FIXME
  Replace `IngredientCache` lock with atomic primitive
* master:
  update MSRV to 1.80 and test it in CI
@Veykril Veykril force-pushed the veykril/push-vznumyusmzww branch from 5d9e78c to c2e00ab Compare February 23, 2025 14:38
@Veykril Veykril marked this pull request as ready for review February 23, 2025 14:46
@Veykril Veykril marked this pull request as draft February 28, 2025 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants