diff --git a/baseline.tst b/baseline.tst
new file mode 100644
index 00000000000..c6e56e8c265
--- /dev/null
+++ b/baseline.tst
@@ -0,0 +1,12 @@
+   24ms - SourceRootConfig::partition
+   24ms - SourceRootConfig::partition
+   31ms - SourceRootConfig::partition
+   30ms - SourceRootConfig::partition
+   35ms - SourceRootConfig::partition
+   28ms - SourceRootConfig::partition
+   32ms - SourceRootConfig::partition
+   26ms - SourceRootConfig::partition
+   30ms - SourceRootConfig::partition
+   26ms - SourceRootConfig::partition
+   32ms - SourceRootConfig::partition
+   31ms - SourceRootConfig::partition
diff --git a/crates/vfs/src/file_set.rs b/crates/vfs/src/file_set.rs
index 37c479306ef..e5e2ef53075 100644
--- a/crates/vfs/src/file_set.rs
+++ b/crates/vfs/src/file_set.rs
@@ -62,7 +62,7 @@ impl FileSetConfig {
         let mut res = vec![FileSet::default(); self.len()];
         for (file_id, path) in vfs.iter() {
             let root = self.classify(&path, &mut scratch_space);
-            res[root].insert(file_id, path)
+            res[root].insert(file_id, path.clone())
         }
         res
     }
diff --git a/crates/vfs/src/lib.rs b/crates/vfs/src/lib.rs
index 3bfecd08fbb..cdf6f1fd021 100644
--- a/crates/vfs/src/lib.rs
+++ b/crates/vfs/src/lib.rs
@@ -90,12 +90,12 @@ impl Vfs {
     pub fn file_contents(&self, file_id: FileId) -> &[u8] {
         self.get(file_id).as_deref().unwrap()
     }
-    pub fn iter(&self) -> impl Iterator<Item = (FileId, VfsPath)> + '_ {
+    pub fn iter(&self) -> impl Iterator<Item = (FileId, &VfsPath)> + '_ {
         (0..self.data.len())
             .map(|it| FileId(it as u32))
             .filter(move |&file_id| self.get(file_id).is_some())
             .map(move |file_id| {
-                let path = self.interner.lookup(file_id).clone();
+                let path = self.interner.lookup(file_id);
                 (file_id, path)
             })
     }