diff --git a/examples/alloc/src/main.rs b/examples/alloc/src/main.rs index a945d4486..71829a309 100644 --- a/examples/alloc/src/main.rs +++ b/examples/alloc/src/main.rs @@ -1,7 +1,11 @@ +use std::time::Instant; + pub fn main() { let (prove_alloc, verify_alloc) = guest::build_alloc(); + let now = Instant::now(); let (output, proof) = prove_alloc(41); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_alloc(proof); println!("output: {:?}", output); diff --git a/examples/collatz/src/main.rs b/examples/collatz/src/main.rs index 4c7773ac9..76efffe91 100644 --- a/examples/collatz/src/main.rs +++ b/examples/collatz/src/main.rs @@ -1,8 +1,12 @@ +use std::time::Instant; + pub fn main() { // Prove/verify convergence for a single number: let (prove_collatz_single, verify_collatz_single) = guest::build_collatz_convergence(); + let now = Instant::now(); let (output, proof) = prove_collatz_single(19); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_collatz_single(proof); println!("output: {}", output); @@ -14,7 +18,9 @@ pub fn main() { // https://www.reddit.com/r/compsci/comments/gk9x6g/collatz_conjecture_news_recently_i_managed_to/ let start: u128 = 1 << 68; + let now = Instant::now(); let (output, proof) = prove_collatz_convergence(start, start + 100); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_collatz_convergence(proof); println!("output: {}", output); diff --git a/examples/fibonacci/src/main.rs b/examples/fibonacci/src/main.rs index 96bcec81c..91b988222 100644 --- a/examples/fibonacci/src/main.rs +++ b/examples/fibonacci/src/main.rs @@ -1,3 +1,5 @@ +use std::time::Instant; + pub fn main() { let (prove_fib, verify_fib) = guest::build_fib(); let program_summary = guest::analyze_fib(10); @@ -5,7 +7,9 @@ pub fn main() { .write_to_file("fib_10.txt".into()) .expect("should write"); + let now = Instant::now(); let (output, proof) = prove_fib(50); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_fib(proof); println!("output: {}", output); diff --git a/examples/memory-ops/src/main.rs b/examples/memory-ops/src/main.rs index a2b80b344..4fb35ed26 100644 --- a/examples/memory-ops/src/main.rs +++ b/examples/memory-ops/src/main.rs @@ -1,7 +1,11 @@ +use std::time::Instant; + pub fn main() { let (prove, verify) = guest::build_memory_ops(); + let now = Instant::now(); let (output, proof) = prove(); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify(proof); println!( diff --git a/examples/muldiv/src/main.rs b/examples/muldiv/src/main.rs index 488b02211..7d265261a 100644 --- a/examples/muldiv/src/main.rs +++ b/examples/muldiv/src/main.rs @@ -1,7 +1,11 @@ +use std::time::Instant; + pub fn main() { let (prove, verify) = guest::build_muldiv(); + let now = Instant::now(); let (output, proof) = prove(12031293, 17, 92); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify(proof); println!("output: {}", output); diff --git a/examples/multi-function/src/main.rs b/examples/multi-function/src/main.rs index 2d34bf0bd..2101c7f2c 100644 --- a/examples/multi-function/src/main.rs +++ b/examples/multi-function/src/main.rs @@ -2,7 +2,9 @@ pub fn main() { let (prove_add, verify_add) = guest::build_add(); let (prove_mul, verify_mul) = guest::build_mul(); + let now = Instant::now(); let (output, proof) = prove_add(5, 10); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_add(proof); println!("add output: {}", output); diff --git a/examples/overflow/src/main.rs b/examples/overflow/src/main.rs index fcad83eb3..6ddf34cdb 100644 --- a/examples/overflow/src/main.rs +++ b/examples/overflow/src/main.rs @@ -1,5 +1,6 @@ use std::any::Any; use std::panic; +use std::time::Instant; pub fn main() { let (prove_overflow_stack, _) = guest::build_overflow_stack(); @@ -24,7 +25,9 @@ pub fn main() { let (prove_allocate_stack_with_increased_size, verfiy_allocate_stack_with_increased_size) = guest::build_allocate_stack_with_increased_size(); + let now = Instant::now(); let (output, proof) = prove_allocate_stack_with_increased_size(); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verfiy_allocate_stack_with_increased_size(proof); println!("output: {}", output); diff --git a/examples/run_benchmarks.sh b/examples/run_benchmarks.sh index 4c609f8a2..47702252e 100755 --- a/examples/run_benchmarks.sh +++ b/examples/run_benchmarks.sh @@ -78,7 +78,7 @@ for i in "${!test_directories[@]}"; do # MRS: 1964 KB output=$(/usr/bin/time -f "wall: %E (HH:MM:SS)\nreal: %e s\nMRS: %M KB" cargo run --release -p "$file" 2>&1) # Extract 'real' time value using awk - exec_time=$(echo "$output" | awk '/real:/ {print $2}') # in seconds + exec_time=$(echo "$output" | awk '/Prover runtime:/ {print $3}') # in seconds # Extract 'MRS' value using awk mem_used=$(echo "$output" | awk '/MRS:/ {print $2}') # in KB echo "$output" # Print the output for debugging diff --git a/examples/sha2-chain/src/main.rs b/examples/sha2-chain/src/main.rs index 8d84756c1..4958243a7 100644 --- a/examples/sha2-chain/src/main.rs +++ b/examples/sha2-chain/src/main.rs @@ -1,10 +1,14 @@ +use std::time::Instant; + pub fn main() { let (prove_sha2_chain, verify_sha2_chain) = guest::build_sha2_chain(); let input = [5u8; 32]; let iters = 100; let native_output = guest::sha2_chain(input, iters); + let now = Instant::now(); let (output, proof) = prove_sha2_chain(input, iters); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_sha2_chain(proof); assert_eq!(output, native_output, "output mismatch"); diff --git a/examples/sha2-ex/src/main.rs b/examples/sha2-ex/src/main.rs index a4bb7fed5..54144713e 100644 --- a/examples/sha2-ex/src/main.rs +++ b/examples/sha2-ex/src/main.rs @@ -1,8 +1,12 @@ +use std::time::Instant; + pub fn main() { let (prove_sha2, verify_sha2) = guest::build_sha2(); let input: &[u8] = &[5u8; 32]; + let now = Instant::now(); let (output, proof) = prove_sha2(input); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_sha2(proof); println!("output: {}", hex::encode(output)); diff --git a/examples/sha3-chain/src/main.rs b/examples/sha3-chain/src/main.rs index 5f41b067d..5468a9b03 100644 --- a/examples/sha3-chain/src/main.rs +++ b/examples/sha3-chain/src/main.rs @@ -1,9 +1,13 @@ +use std::time::Instant; + pub fn main() { let (prove_sha3_chain, verify_sha3_chain) = guest::build_sha3_chain(); let input = [5u8; 32]; let iters = 100; + let now = Instant::now(); let (output, proof) = prove_sha3_chain(input, iters); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_sha3_chain(proof); println!("output: {}", hex::encode(output)); diff --git a/examples/sha3-ex/src/main.rs b/examples/sha3-ex/src/main.rs index 495420f70..e058e0911 100644 --- a/examples/sha3-ex/src/main.rs +++ b/examples/sha3-ex/src/main.rs @@ -1,8 +1,12 @@ +use std::time::Instant; + pub fn main() { let (prove_sha3, verify_sha3) = guest::build_sha3(); let input: &[u8] = &[5u8; 32]; + let now = Instant::now(); let (output, proof) = prove_sha3(input); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify_sha3(proof); println!("output: {}", hex::encode(output)); diff --git a/examples/stdlib/src/main.rs b/examples/stdlib/src/main.rs index bf9fe0f7b..42a67725a 100644 --- a/examples/stdlib/src/main.rs +++ b/examples/stdlib/src/main.rs @@ -1,3 +1,5 @@ +use std::time::Instant; + pub fn main() { let (prove, verify) = guest::build_int_to_string(); @@ -9,7 +11,9 @@ pub fn main() { let (prove, verify) = guest::build_string_concat(); + let now = Instant::now(); let (output, proof) = prove(20); + println!("Prover runtime: {} s", now.elapsed().as_secs_f64()); let is_valid = verify(proof); println!("string concat output: {:?}", output);