mirror of
https://github.com/danbulant/oxc
synced 2026-05-25 04:42:10 +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 std::sync::OnceLock;
|
||||||
|
|
||||||
use dashmap::DashMap;
|
use dashmap::DashMap;
|
||||||
|
use rustc_hash::FxBuildHasher;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
use super::EngineTargets;
|
use super::EngineTargets;
|
||||||
|
|
||||||
|
type FxDashMap<K, V> = DashMap<K, V, FxBuildHasher>;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Deserialize, Eq, PartialEq, PartialOrd, Ord, Hash)]
|
#[derive(Debug, Clone, Deserialize, Eq, PartialEq, PartialOrd, Ord, Hash)]
|
||||||
#[serde(untagged)]
|
#[serde(untagged)]
|
||||||
pub enum BrowserslistQuery {
|
pub enum BrowserslistQuery {
|
||||||
|
|
@ -12,9 +15,9 @@ pub enum BrowserslistQuery {
|
||||||
Multiple(Vec<String>),
|
Multiple(Vec<String>),
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cache() -> &'static DashMap<BrowserslistQuery, EngineTargets> {
|
fn cache() -> &'static FxDashMap<BrowserslistQuery, EngineTargets> {
|
||||||
static CACHE: OnceLock<DashMap<BrowserslistQuery, EngineTargets>> = OnceLock::new();
|
static CACHE: OnceLock<FxDashMap<BrowserslistQuery, EngineTargets>> = OnceLock::new();
|
||||||
CACHE.get_or_init(DashMap::new)
|
CACHE.get_or_init(FxDashMap::default)
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BrowserslistQuery {
|
impl BrowserslistQuery {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue