mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Refactor common infrastructure for creating memory reports. (#36579)
This removes a bunch of duplicated code needed to support ConditionalMallocSizeOf correctly, and fixes multiple places where that code was subtly wrong (the seen pointers hashset was never cleared). Testing: Measuring https://www.nist.gov/image-gallery lots of times. Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
2a81987590
commit
5e2d42e944
11 changed files with 68 additions and 57 deletions
|
@ -78,7 +78,7 @@ use net_traits::{
|
|||
ResourceFetchTiming, ResourceThreads, ResourceTimingType,
|
||||
};
|
||||
use percent_encoding::percent_decode;
|
||||
use profile_traits::mem::{ProcessReports, ReportsChan};
|
||||
use profile_traits::mem::{ProcessReports, ReportsChan, perform_memory_report};
|
||||
use profile_traits::time::ProfilerCategory;
|
||||
use profile_traits::time_profile;
|
||||
use script_layout_interface::{
|
||||
|
@ -2435,13 +2435,19 @@ impl ScriptThread {
|
|||
let documents = self.documents.borrow();
|
||||
let urls = itertools::join(documents.iter().map(|(_, d)| d.url().to_string()), ", ");
|
||||
|
||||
let prefix = format!("url({urls})");
|
||||
let mut reports = self.get_cx().get_reports(prefix.clone());
|
||||
for (_, document) in documents.iter() {
|
||||
document.window().layout().collect_reports(&mut reports);
|
||||
}
|
||||
let mut reports = vec![];
|
||||
perform_memory_report(|ops| {
|
||||
let prefix = format!("url({urls})");
|
||||
reports.extend(self.get_cx().get_reports(prefix.clone(), ops));
|
||||
for (_, document) in documents.iter() {
|
||||
document
|
||||
.window()
|
||||
.layout()
|
||||
.collect_reports(&mut reports, ops);
|
||||
}
|
||||
|
||||
reports.push(self.image_cache.memory_report(&prefix));
|
||||
reports.push(self.image_cache.memory_report(&prefix, ops));
|
||||
});
|
||||
|
||||
reports_chan.send(ProcessReports::new(reports));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue