summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshod Nakashian <ashodnakashian@yahoo.com>2015-02-21 19:07:37 -0500
committerMichael Stahl <mstahl@redhat.com>2015-02-26 16:57:28 +0100
commit2304bce084a87cdf2e0711f8408b53036f1d5d37 (patch)
tree6a384b3cbf06801c6af8ea9d6f2e65e46ae7ecc5
parentd97c984dc016e14a9f16a3ae0b865e3f2b78fbc8 (diff)
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 <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit c57213764b387dddad946e78145cea607ca9f460) Signed-off-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--sw/source/core/doc/DocumentStatisticsManager.cxx4
1 files changed, 3 insertions, 1 deletions
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 )