Skip to content

Commit 6ad310e

Browse files
committed
new: added --report-time (default to 5s from old 1s) to determine how often stats are reported
1 parent 2041c62 commit 6ad310e

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/options.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ pub(crate) struct Options {
7575
/// Delay in milliseconds to wait before a retry.
7676
#[clap(long, default_value_t = 1000)]
7777
pub retry_time: u64,
78+
/// Report runtime statistics every N milliseconds.
79+
#[clap(long, default_value_t = 5000)]
80+
pub report_time: u64,
7881
#[clap(long, default_value_t = false)]
7982
/// Exit after the first positive match is found.
8083
pub single_match: bool,

src/session/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ use std::time;
2424
pub(crate) type Error = String;
2525

2626
async fn periodic_saver(session: Arc<Session>) {
27-
let one_sec = time::Duration::from_millis(1000);
27+
let report_interval = time::Duration::from_millis(session.options.report_time);
2828
let mut last_done: usize = 0;
2929
let persistent = session.options.session.is_some();
3030

3131
while !session.is_stop() {
32-
tokio::time::sleep(one_sec).await;
32+
tokio::time::sleep(report_interval).await;
3333

3434
// compute number of attempts per second
3535
let new_done = session.get_done();
36-
let speed = new_done - last_done;
36+
let speed = (new_done - last_done) as f64 / report_interval.as_secs_f64();
3737
last_done = new_done;
3838

39-
session.set_speed(speed);
39+
session.set_speed(speed as usize);
4040

4141
if persistent && let Err(e) = session.save() {
4242
log::error!("could not save session: {:?}", e);
@@ -339,15 +339,15 @@ impl Session {
339339
}
340340

341341
pub async fn report_runtime_statistics(&self) {
342-
let one_sec = time::Duration::from_millis(1000);
342+
let report_interval = time::Duration::from_millis(self.options.report_time);
343343
while !self.is_stop() {
344-
tokio::time::sleep(one_sec).await;
344+
tokio::time::sleep(report_interval).await;
345345

346346
let total = self.get_total();
347347
let done = self.get_done();
348348
let perc = (done as f32 / total as f32) * 100.0;
349349
let errors = self.get_errors();
350-
let speed = self.get_speed();
350+
let speed: usize = self.get_speed();
351351
let memory = if let Some(usage) = memory_stats() {
352352
usage.physical_mem
353353
} else {

0 commit comments

Comments
 (0)