dag: fix benches/inprocess_iddag_serde

Summary:
Benchmark code is out of sync. Fix it.

Example run:

  benchmarking dag::iddag::IdDag<dag::iddagstore::in_process_store::InProcessStore> serde
  serializing inprocess iddag with mincode            0.664 ms
  mincode serialized blob has 707565 bytes
  deserializing inprocess iddag with mincode         42.477 ms

Reviewed By: sfilipco

Differential Revision: D26360563

fbshipit-source-id: f87e7ad53e6b6dadecaa0976e1c61f0399814104
This commit is contained in:
Jun Wu 2021-02-10 12:26:22 -08:00 committed by Facebook GitHub Bot
parent 7f618a6a9e
commit 46519a3269

View File

@ -8,10 +8,13 @@
use tempfile::tempdir;
use minibench::{bench, elapsed};
use nonblocking::non_blocking_result as nbr;
use dag::idmap::{IdMap, IdMapAssignHead};
use dag::{Group, IdDag, InProcessIdDag, VertexName};
type ParentsFunc<'a> = Box<dyn Fn(VertexName) -> dag::Result<Vec<VertexName>> + Send + Sync + 'a>;
fn main() {
println!(
"benchmarking {} serde",
@ -20,22 +23,22 @@ fn main() {
let parents = bindag::parse_bindag(bindag::MOZILLA);
let head_name = VertexName::copy_from(format!("{}", parents.len() - 1).as_bytes());
let parents_by_name = |name: VertexName| -> dag::Result<Vec<VertexName>> {
let i = String::from_utf8(name.as_ref().to_vec())
.unwrap()
.parse::<usize>()
.unwrap();
Ok(parents[i]
.iter()
.map(|p| format!("{}", p).as_bytes().to_vec().into())
.collect())
};
let parents_by_name: ParentsFunc =
Box::new(|name: VertexName| -> dag::Result<Vec<VertexName>> {
let i = String::from_utf8(name.as_ref().to_vec())
.unwrap()
.parse::<usize>()
.unwrap();
Ok(parents[i]
.iter()
.map(|p| format!("{}", p).as_bytes().to_vec().into())
.collect())
});
let id_map_dir = tempdir().unwrap();
let mut id_map = IdMap::open(id_map_dir.path()).unwrap();
let outcome = id_map
.assign_head(head_name.clone(), &parents_by_name, Group::MASTER)
.unwrap();
let outcome =
nbr(id_map.assign_head(head_name.clone(), &parents_by_name, Group::MASTER)).unwrap();
let mut iddag = IdDag::new_in_process();
iddag
.build_segments_volatile_from_prepared_flat_segments(&outcome)