MCPcopy Create free account
hub / github.com/argumentcomputer/ix / dump_query_stats

Function dump_query_stats

crates/aiur/src/execute.rs:184–208  ·  view source on GitHub ↗
(record: &QueryRecord, tag: &str)

Source from the content-addressed store, hash-verified

182/// Aiur functions (indices resolve to names via the Lean
183/// `CompiledToplevel`). Heaviest maps first, by retained G elements.
184static QUERY_STATS: std::sync::LazyLock<bool> =
185 std::sync::LazyLock::new(|| {
186 std::env::var_os("IX_AIUR_QUERY_STATS").is_some()
187 });
188
189fn dump_query_stats(record: &QueryRecord, tag: &str) {
190 let mut rows: Vec<(usize, usize, usize)> = record
191 .function_queries
192 .iter()
193 .enumerate()
194 .map(|(i, m)| (i, m.len(), m.retained_elems()))
195 .filter(|(_, n, _)| *n > 0)
196 .collect();
197 rows.sort_by(|a, b| b.2.cmp(&a.2));
198 let total_entries: usize = rows.iter().map(|r| r.1).sum();
199 let total_elems: usize = rows.iter().map(|r| r.2).sum();
200 eprintln!(
201 "[aiur-stats {tag}] function_queries: {total_entries} entries, \
202 {total_elems} G-elems; top maps:"
203 );
204 for (i, n, e) in rows.iter().take(30) {
205 eprintln!(" fn{i:<4} entries={n:<12} g_elems={e}");
206 }
207 let mem: Vec<String> = record
208 .memory_queries
209 .iter()
210 .map(|(w, m)| format!("w{w}={}", m.len()))
211 .collect();

Callers 1

executeMethod · 0.85

Calls 5

retained_elemsMethod · 0.80
iterMethod · 0.45
lenMethod · 0.45
cmpMethod · 0.45
takeMethod · 0.45

Tested by

no test coverage detected