arnaucube
arnaucube/sonobe-playgroundPublic Self-hosted repository
Improve logging
Piotr Mikołajczyk piomiko41@gmail.com
Tue, 15 Oct 2024 10:43:56 +0200
commit

7cf536d1ad82cba21762cd82a7045e02153d46f7

parent

58beac6257bc5e569e8c7bff5182a7e4d409a3c0

3 files changed, 22 insertions(+), 24 deletions(-)

jump to
M src/logging.rs → src/logging.rs

@@ -1,8 +1,15 @@

-use std::io; +use std::{io, time::Instant}; -use tracing::level_filters::LevelFilter; +use tracing::{info, level_filters::LevelFilter}; use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan}; +pub fn measure<T, Action: FnOnce() -> T>(action_name: &str, action: Action) -> T { + let start = Instant::now(); + let result = action(); + info!("{action_name}: {:?}", start.elapsed()); + result +} + fn get_filter() -> EnvFilter { EnvFilter::builder() .with_default_directive(LevelFilter::WARN.into())

@@ -14,9 +21,8 @@ pub fn init_logging() {

tracing_subscriber::fmt() .with_writer(io::stdout) .with_target(false) - .without_time() .with_env_filter(get_filter()) - .with_span_events(FmtSpan::ENTER | FmtSpan::CLOSE) + .with_span_events(FmtSpan::CLOSE) .with_level(false) .json() .try_init()
M src/main.rs → src/main.rs

@@ -1,12 +1,10 @@

-use std::time::Instant; - use scenario_config::ScenarioConfig; -use tracing::info; use crate::{ folding::{prepare_folding, verify_folding, FoldingSchemeExt, HyperNovaFolding, NovaFolding}, logging::init_logging, }; +use crate::logging::measure; mod circuit; mod logging;

@@ -15,14 +13,12 @@ mod folding;

mod input; mod scenario_config; -fn measure<T, Action: FnOnce() -> T>(action_name: &str, action: Action) -> T { - let start = Instant::now(); - let result = action(); - info!("{action_name}: {:?}", start.elapsed()); - result -} - -fn scenario<FS: FoldingSchemeExt>(config: ScenarioConfig, rng: &mut impl rand::RngCore) { +#[tracing::instrument(skip(config, rng))] +fn scenario<FS: FoldingSchemeExt>( + config: ScenarioConfig, + rng: &mut impl rand::RngCore, + folding_scheme: &str, +) { // ============== FOLDING PREPARATION ========================================================== let start_state = config.start_ivc_state.clone();

@@ -65,12 +61,7 @@

let mut rng = rand::rngs::OsRng; let config = ScenarioConfig::new(); - println!("========== Nova folding scheme ===================="); - scenario::<NovaFolding>(config.clone(), &mut rng); - - println!("========== HyperNova<1,1> folding scheme =========="); - scenario::<HyperNovaFolding<1, 1>>(config.clone(), &mut rng); - - println!("========== HyperNova<2,2> folding scheme =========="); - scenario::<HyperNovaFolding<2, 2>>(config, &mut rng); + scenario::<NovaFolding>(config.clone(), &mut rng, "Nova"); + scenario::<HyperNovaFolding<1, 1>>(config.clone(), &mut rng, "HyperNova<1,1>"); + scenario::<HyperNovaFolding<2, 2>>(config.clone(), &mut rng, "HyperNova<2,2>"); }
M src/scenario_config.rs → src/scenario_config.rs

@@ -2,7 +2,8 @@ use ark_bn254::Fr;

use num_traits::Zero; use sonobe::frontend::circom::CircomFCircuit; -use crate::{circuit::create_circuit, input::prepare_input, measure}; +use crate::{circuit::create_circuit, input::prepare_input}; +use crate::logging::measure; #[derive(Clone)] pub struct ScenarioConfig {