From 81413799eb4f38d62710b295268249307364000a Mon Sep 17 00:00:00 2001 From: László Németh Date: Tue, 28 Mar 2017 16:32:25 +0200 Subject: comphelper: add a profiling API Using the guard style ProfileZone aZone("foo"). Test macro: Sub TimeLog toolkit = createUnoService("com.sun.star.awt.Toolkit") toolkit.startRecording() toolkit.processEventsToIdle() toolkit.stopRecording() a = toolkit.getRecordingAndClear() s = "" For Each i in a s = s + i + ", " Next i Print s End Sub Change-Id: Iceaf9143d0387c87e7936dc67eecbbf71ee8d74a Reviewed-on: https://gerrit.libreoffice.org/38786 Reviewed-by: Miklos Vajna Reviewed-by: Noel Grandin Tested-by: Jenkins --- toolkit/source/awt/vclxtoolkit.cxx | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'toolkit') diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx index 380abb76af30..92f94250794b 100644 --- a/toolkit/source/awt/vclxtoolkit.cxx +++ b/toolkit/source/awt/vclxtoolkit.cxx @@ -121,6 +121,7 @@ #include #include #include +#include #include "helper/unowrapper.hxx" @@ -222,6 +223,12 @@ public: virtual void SAL_CALL pause(sal_Int32 nMilliseconds) override; + virtual void SAL_CALL startRecording() override; + + virtual void SAL_CALL stopRecording() override; + + css::uno::Sequence< OUString > SAL_CALL getRecordingAndClear() override; + // css::awt::XToolkit css::uno::Reference< css::awt::XWindowPeer > SAL_CALL getDesktopWindow( ) override; css::awt::Rectangle SAL_CALL getWorkArea( ) override; @@ -1887,6 +1894,7 @@ void SAL_CALL VCLXToolkit::reschedule() void SAL_CALL VCLXToolkit::processEventsToIdle() { SolarMutexGuard aSolarGuard; + ::comphelper::ProfileZone aZone("processEvents"); Scheduler::ProcessEventsToIdle(); } @@ -1910,6 +1918,21 @@ void SAL_CALL VCLXToolkit::pause(sal_Int32 nMilliseconds) new Pause(nMilliseconds); } +void SAL_CALL VCLXToolkit::startRecording() +{ + ::comphelper::ProfileRecording::startRecording(); +} + +void SAL_CALL VCLXToolkit::stopRecording() +{ + ::comphelper::ProfileRecording::startRecording( false ); +} + +css::uno::Sequence< OUString > VCLXToolkit::getRecordingAndClear() +{ + return ::comphelper::ProfileRecording::getRecordingAndClear(); +} + // css:awt:XToolkitRobot void SAL_CALL VCLXToolkit::keyPress( const css::awt::KeyEvent & aKeyEvent ) -- cgit