in src/data/perf_profile.rs [40:73]
fn prepare_data_collector(&mut self, params: &CollectorParams) -> Result<()> {
match Command::new("perf")
.stdout(Stdio::null())
.args([
"record",
"-a",
"-q",
"-g",
"-k",
"1",
"-F",
"99",
"-e",
"cpu-clock:pppH",
"-o",
¶ms.data_file_path.display().to_string(),
"--",
"sleep",
¶ms.collection_time.to_string(),
])
.spawn()
{
Err(e) => Err(PDError::DependencyError(format!(
"Skipping Perf profile collection due to: {}",
e
))
.into()),
Ok(child) => {
trace!("Recording Perf profiling data.");
*PERF_CHILD.lock().unwrap() = Some(child);
Ok(())
}
}
}