diff options
| author | Ryan Levick <me@ryanlevick.com> | 2021-07-23 16:25:58 +0200 |
|---|---|---|
| committer | Ryan Levick <me@ryanlevick.com> | 2021-10-07 14:22:29 +0200 |
| commit | 947a33bf206e8bec15a9734e217cd540b8a2fb5c (patch) | |
| tree | a2c210053fd367e15fe57c2ea2a3288edbbfef48 /compiler/rustc_query_system | |
| parent | ca8078d7b2e40c24a39e5fe2a910afef4c91ebfc (diff) | |
| download | rust-947a33bf206e8bec15a9734e217cd540b8a2fb5c.tar.gz rust-947a33bf206e8bec15a9734e217cd540b8a2fb5c.zip | |
Add support for artifact size profiling
Diffstat (limited to 'compiler/rustc_query_system')
| -rw-r--r-- | compiler/rustc_query_system/src/dep_graph/serialized.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/rustc_query_system/src/dep_graph/serialized.rs b/compiler/rustc_query_system/src/dep_graph/serialized.rs index f5f67fcd0a0..47197a1e492 100644 --- a/compiler/rustc_query_system/src/dep_graph/serialized.rs +++ b/compiler/rustc_query_system/src/dep_graph/serialized.rs @@ -222,7 +222,7 @@ impl<K: DepKind> EncoderState<K> { index } - fn finish(self) -> FileEncodeResult { + fn finish(self, profiler: &SelfProfilerRef) -> FileEncodeResult { let Self { mut encoder, total_node_count, total_edge_count, result, stats: _ } = self; let () = result?; @@ -235,7 +235,11 @@ impl<K: DepKind> EncoderState<K> { IntEncodedWithFixedSize(edge_count).encode(&mut encoder)?; debug!("position: {:?}", encoder.position()); // Drop the encoder so that nothing is written after the counts. - encoder.flush() + let result = encoder.flush(); + // FIXME(rylev): we hardcode the dep graph file name so we don't need a dependency on + // rustc_incremental just for that. + profiler.artifact_size("dep_graph", "dep-graph.bin", encoder.position() as u64); + result } } @@ -332,6 +336,6 @@ impl<K: DepKind + Encodable<FileEncoder>> GraphEncoder<K> { pub fn finish(self, profiler: &SelfProfilerRef) -> FileEncodeResult { let _prof_timer = profiler.generic_activity("incr_comp_encode_dep_graph"); - self.status.into_inner().finish() + self.status.into_inner().finish(profiler) } } |
