From 21ea774a0014db0ca25e04c249e7733f234d61af Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Tue, 21 Nov 2023 19:16:54 +0100 Subject: [PATCH] Taking time for drawing and caching --- src/cache.rs | 7 ++++++- src/draw.rs | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/cache.rs b/src/cache.rs index bb7987c..4cb677a 100644 --- a/src/cache.rs +++ b/src/cache.rs @@ -3,6 +3,7 @@ use std::{ collections::BTreeMap, path::{Path, PathBuf}, rc::Rc, + time::Instant, }; use async_channel::Sender; @@ -31,6 +32,7 @@ impl PageCache { pub fn cache_pages(&mut self, page_numbers: Vec) { println!("Caching pages {:?}", page_numbers); + let begin_of_cashing = Instant::now(); for page_number in page_numbers { if self.pages.contains_key(&page_number) { continue; @@ -44,7 +46,10 @@ impl PageCache { } } } - println!("done caching"); + println!( + "done caching in {}ms", + begin_of_cashing.elapsed().as_millis() + ); } fn remove_most_distant_page(&mut self, current_page_number: usize) -> Result<(), ()> { diff --git a/src/draw.rs b/src/draw.rs index 46cfa36..35af7c8 100644 --- a/src/draw.rs +++ b/src/draw.rs @@ -1,3 +1,5 @@ +use std::time::Instant; + use cairo::Context; use crate::ui::DocumentCanvas; @@ -10,13 +12,17 @@ pub fn draw( ) { println!("Draw"); if let Some(document_canvas) = document_canvas { + let begin_of_drawing = Instant::now(); if document_canvas.num_pages.unwrap_or(0) > 1 { draw_two_pages(document_canvas, context, area_width, area_height); } else { draw_single_page(document_canvas, context, area_width, area_height); } - println!("Finished drawing"); + println!( + "Finished drawing in {}ms", + begin_of_drawing.elapsed().as_millis() + ); document_canvas.cache_surrounding_pages(); } }