MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / raw_put_timing

Function raw_put_timing

nodedb/src/engine/kv/engine.rs:690–712  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

688
689 #[test]
690 fn raw_put_timing() {
691 let mut e = make_engine();
692 let n = now();
693 let keys: Vec<Vec<u8>> = (0..10_000u32).map(|i| i.to_be_bytes().to_vec()).collect();
694 let value = [0u8; 64];
695
696 // Warmup: insert all keys once.
697 for key in &keys {
698 e.put(1, "b", key, &value, 0, n, Surrogate::ZERO);
699 }
700
701 // Timed: 100K updates (keys already exist).
702 let iters = 100_000u64;
703 let start = std::time::Instant::now();
704 for i in 0..iters {
705 let key = &keys[(i as usize) % 10_000];
706 e.put(1, "b", key, &value, 0, n, Surrogate::ZERO);
707 }
708 let elapsed = start.elapsed();
709 let ns_per_op = elapsed.as_nanos() / iters as u128;
710 // 691 ns/op measured — well under document's 12μs.
711 assert!(ns_per_op < 5_000, "PUT too slow: {ns_per_op} ns/op");
712 }
713}

Callers

nothing calls this directly

Calls 6

nowFunction · 0.85
collectMethod · 0.80
elapsedMethod · 0.80
make_engineFunction · 0.70
to_vecMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected