mirror of
https://github.com/danbulant/oxc
synced 2026-05-21 05:08:45 +00:00
perf(transformer): use FxDashMap for browser query cache (#7521)
Use `FxDashMap` instead of plain `DashMap` for browser query cache. Inspired by https://github.com/rolldown/rolldown/pull/2971.
This commit is contained in:
parent
896ff860f9
commit
7ebe8c20e8
1 changed files with 6 additions and 3 deletions
|
|
@ -1,10 +1,13 @@
|
|||
use std::sync::OnceLock;
|
||||
|
||||
use dashmap::DashMap;
|
||||
use rustc_hash::FxBuildHasher;
|
||||
use serde::Deserialize;
|
||||
|
||||
use super::EngineTargets;
|
||||
|
||||
type FxDashMap<K, V> = DashMap<K, V, FxBuildHasher>;
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Eq, PartialEq, PartialOrd, Ord, Hash)]
|
||||
#[serde(untagged)]
|
||||
pub enum BrowserslistQuery {
|
||||
|
|
@ -12,9 +15,9 @@ pub enum BrowserslistQuery {
|
|||
Multiple(Vec<String>),
|
||||
}
|
||||
|
||||
fn cache() -> &'static DashMap<BrowserslistQuery, EngineTargets> {
|
||||
static CACHE: OnceLock<DashMap<BrowserslistQuery, EngineTargets>> = OnceLock::new();
|
||||
CACHE.get_or_init(DashMap::new)
|
||||
fn cache() -> &'static FxDashMap<BrowserslistQuery, EngineTargets> {
|
||||
static CACHE: OnceLock<FxDashMap<BrowserslistQuery, EngineTargets>> = OnceLock::new();
|
||||
CACHE.get_or_init(FxDashMap::default)
|
||||
}
|
||||
|
||||
impl BrowserslistQuery {
|
||||
|
|
|
|||
Loading…
Reference in a new issue