diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs b/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs index 270ac782f1bab..8ef495be391e8 100644 --- a/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs +++ b/turbopack/crates/turbo-tasks-backend/src/backend/operation/mod.rs @@ -64,6 +64,13 @@ impl<'a> ExecuteContext<'a> { let items = self.backend.backing_storage.lookup_data(task_id); task = self.backend.storage.access_mut(task_id); if !task.persistance_state().is_restored() { + if items.len() > 10000 { + println!( + "{} restored {} items", + self.backend.get_task_desc_fn(task_id)(), + items.len() + ); + } for item in items { task.add(item); } @@ -224,10 +231,24 @@ impl<'a> TaskGuard<'a> { pub fn add_new(&mut self, item: CachedDataItem) { let added = self.add(item); + if added { + if self.task.len() == 10000 { + println!( + "{} has > 10000 items", + self.backend.get_task_desc_fn(self.task_id)() + ); + } + } assert!(added, "Item already exists"); } pub fn insert(&mut self, item: CachedDataItem) -> Option { + if self.task.len() == 10000 { + println!( + "{} has > 10000 items", + self.backend.get_task_desc_fn(self.task_id)() + ); + } let (key, value) = item.into_key_and_value(); if self.task_id.is_transient() || !key.is_persistent() { self.task diff --git a/turbopack/crates/turbo-tasks-backend/src/backend/storage.rs b/turbopack/crates/turbo-tasks-backend/src/backend/storage.rs index cf0b1285699d5..1ac19b2bf5bbf 100644 --- a/turbopack/crates/turbo-tasks-backend/src/backend/storage.rs +++ b/turbopack/crates/turbo-tasks-backend/src/backend/storage.rs @@ -81,6 +81,13 @@ where } } + pub fn len(&self) -> usize { + match self { + InnerStorage::Plain { map, .. } => map.len(), + InnerStorage::Indexed { map, .. } => map.values().map(|m| m.len()).sum(), + } + } + pub fn persistance_state(&self) -> &PersistanceState { match self { InnerStorage::Plain {