From 2304bce084a87cdf2e0711f8408b53036f1d5d37 Mon Sep 17 00:00:00 2001 From: Ashod Nakashian Date: Sat, 21 Feb 2015 19:07:37 -0500 Subject: tdf#38837 Reduce power consumption by minimizing idle timers Based on profiling, Writer's most CPU consuming idle event was document statistics calculation. This patch stops the idle timer once statistics has been updated. Subsequent profiling shows a sharp decline in CPU usage. Modifications to the document should initiate statistics update. Change-Id: I8c38ad8847987264549945e4f482ea18d2635283 Reviewed-on: https://gerrit.libreoffice.org/14575 Tested-by: Jenkins Reviewed-by: Michael Stahl Tested-by: Michael Stahl (cherry picked from commit c57213764b387dddad946e78145cea607ca9f460) Signed-off-by: Michael Stahl --- sw/source/core/doc/DocumentStatisticsManager.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sw/source/core/doc/DocumentStatisticsManager.cxx b/sw/source/core/doc/DocumentStatisticsManager.cxx index 5017630bb65b..843c988d4e71 100644 --- a/sw/source/core/doc/DocumentStatisticsManager.cxx +++ b/sw/source/core/doc/DocumentStatisticsManager.cxx @@ -123,6 +123,8 @@ void DocumentStatisticsManager::UpdateDocStat( bool bCompleteAsync, bool bFields } else if (IncrementalDocStatCalculate(5000, bFields)) maStatsUpdateTimer.Start(); + else + maStatsUpdateTimer.Stop(); } } @@ -223,7 +225,7 @@ bool DocumentStatisticsManager::IncrementalDocStatCalculate(long nChars, bool bF pType->UpdateFlds(); } - return nChars <= 0; + return nChars < 0; } IMPL_LINK( DocumentStatisticsManager, DoIdleStatsUpdate, Timer *, pTimer ) -- cgit v1.2.3