Mercurial > public > mercurial-scm > hg
comparison rust/hg-core/examples/nodemap/main.rs @ 46427:6380efb82191
rust: replace Node::encode_hex with std::fmt::LowerHex
This avoids allocating intermediate strings.
Differential Revision: https://phab.mercurial-scm.org/D9860
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Mon, 25 Jan 2021 12:00:23 +0100 |
parents | 8f7c6656ac79 |
children | 18a261b11b20 |
comparison
equal
deleted
inserted
replaced
46426:0da465780bba | 46427:6380efb82191 |
---|---|
64 .clone() | 64 .clone() |
65 }) | 65 }) |
66 .collect(); | 66 .collect(); |
67 if queries < 10 { | 67 if queries < 10 { |
68 let nodes_hex: Vec<String> = | 68 let nodes_hex: Vec<String> = |
69 nodes.iter().map(|n| n.encode_hex()).collect(); | 69 nodes.iter().map(|n| format!("{:x}", n)).collect(); |
70 println!("Nodes: {:?}", nodes_hex); | 70 println!("Nodes: {:?}", nodes_hex); |
71 } | 71 } |
72 let mut last: Option<Revision> = None; | 72 let mut last: Option<Revision> = None; |
73 let start = Instant::now(); | 73 let start = Instant::now(); |
74 for node in nodes.iter() { | 74 for node in nodes.iter() { |
75 last = nm.find_bin(index, node.into()).unwrap(); | 75 last = nm.find_bin(index, node.into()).unwrap(); |
76 } | 76 } |
77 let elapsed = start.elapsed(); | 77 let elapsed = start.elapsed(); |
78 println!( | 78 println!( |
79 "Did {} queries in {:?} (mean {:?}), last was {:?} with result {:?}", | 79 "Did {} queries in {:?} (mean {:?}), last was {:x} with result {:?}", |
80 queries, | 80 queries, |
81 elapsed, | 81 elapsed, |
82 elapsed / (queries as u32), | 82 elapsed / (queries as u32), |
83 nodes.last().unwrap().encode_hex(), | 83 nodes.last().unwrap(), |
84 last | 84 last |
85 ); | 85 ); |
86 } | 86 } |
87 | 87 |
88 fn main() { | 88 fn main() { |