Bug 70526 - Provide startup time measurements
Summary: Provide startup time measurements
Status: ASSIGNED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: framework (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium enhancement
Assignee: venetia
URL:
Whiteboard: reviewed:2022
Keywords: difficultyInteresting, easyHack, skillCpp
Depends on:
Blocks:
 
Reported: 2013-10-16 10:10 UTC by Thorsten Behrens (allotropia)
Modified: 2024-03-14 16:27 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thorsten Behrens (allotropia) 2013-10-16 10:10:30 UTC
Implement the application startup time probe as mozilla did in this (helpfully MPL2-licensed) patch:

http://hg.mozilla.org/mozilla-central/rev/dfdf3e5dc749

, and hook that up with the profiling tinderbox Moggi is already running for Calc.
Comment 1 Björn Michaelsen 2013-10-18 20:03:40 UTC
CCing developer list to Easy Hacks missing this.
Comment 2 Robinson Tryon (qubit) 2015-12-14 05:03:44 UTC Comment hidden (obsolete)
Comment 3 Robinson Tryon (qubit) 2016-02-18 14:51:59 UTC Comment hidden (obsolete)
Comment 4 Hossein 2022-05-26 13:36:06 UTC
Re-evaluating the EasyHack in 2022

This enhancement is still relevant. Startup measurement with timestamps to achieve the detailed time taken for each part of the startup is very helpful to understand the cause of the slow start in order to improve startup time.

Firefox provides a detailed measurement here: (values are dummy here)

Firefox: about:telemetry -> Simple Measurements

Property			Value
start 				10
main 				20
selectProfile 			30
afterProfileLocked 		40
startupCrashDetectionBegin 	50
AMI_startup_begin 		60
XPI_startup_begin 		70
XPI_bootstrap_addons_begin 	80
XPI_bootstrap_addons_end 	90
XPI_startup_end 		100
AMI_startup_end 		110
sessionRestoreInit 		120
XPI_finalUIStartup 		130
sessionRestoreInitialized 	140
createTopLevelWindow 		150
firstPaint2 			160
firstPaint 			170
delayedStartupStarted 		180
delayedStartupFinished 		190
sessionRestored 		200
startupCrashDetectionEnd 	210
firstLoadURI 			220
totalTime 			230
startupInterrupted 		0
debuggerAttached 		0
activeTicks 			10
Comment 5 Khushi Gautam 2023-10-23 13:19:19 UTC Comment hidden (obsolete)
Comment 6 Buovjaga 2023-10-23 14:00:21 UTC Comment hidden (obsolete)
Comment 7 Khushi Gautam 2023-10-23 19:16:24 UTC Comment hidden (obsolete)
Comment 8 Buovjaga 2023-10-24 05:58:33 UTC
(In reply to Khushi Gautam from comment #7)
> (In reply to Buovjaga from comment #6)
> > (In reply to Khushi Gautam from comment #5)
> > > I want to work on this issue, However, can you please tell me what this
> > > "profiling tinderbox" means?
> > 
> > It refers to this: https://ci.libreoffice.org/computer/centos7-callgrind/
> 
> Do we need to include testcase also besides tracking startup performance?

If you mean a unit test, it does not seem necessary to me. I don't know what others think, but if you want to work on this, just go ahead instead of waiting for a consensus. A test can always be added later.
Comment 9 Stéphane Guillou (stragu) 2024-03-13 01:01:27 UTC
Venetia's patch on gerrit, if someone would like to review: https://gerrit.libreoffice.org/c/core/+/163965

Venetia, once merged, how would one access those measurements?
Comment 10 venetia 2024-03-14 16:27:54 UTC
In this patch I have added the measurements as a SAL_INFO log. A further enhancement could be exporting it to a interface.