Skip to content

Commit b9e3985

Browse files
Better preload time counting
1 parent f1877da commit b9e3985

File tree

6 files changed

+28
-3
lines changed

6 files changed

+28
-3
lines changed

Diff for: app/main.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -2125,7 +2125,8 @@ app.on('ready', async () => {
21252125
// We use this event only a single time to log the startup time of the app
21262126
// from when it's first ready until the loading screen disappears.
21272127
ipc.once('signal-app-loaded', (event, info) => {
2128-
const { preloadTime, connectTime, processedCount } = info;
2128+
const { preloadCompileTime, preloadTime, connectTime, processedCount } =
2129+
info;
21292130

21302131
const loadTime = Date.now() - startTime;
21312132
const sqlInitTime = sqlInitTimeEnd - sqlInitTimeStart;
@@ -2136,6 +2137,7 @@ app.on('ready', async () => {
21362137
const innerLogger = getLogger();
21372138
innerLogger.info('App loaded - time:', loadTime);
21382139
innerLogger.info('SQL init - time:', sqlInitTime);
2140+
innerLogger.info('Preload Compile - time:', preloadCompileTime);
21392141
innerLogger.info('Preload - time:', preloadTime);
21402142
innerLogger.info('WebSocket connect - time:', connectTime);
21412143
innerLogger.info('Processed count:', processedCount);
@@ -2146,6 +2148,7 @@ app.on('ready', async () => {
21462148
event.sender.send('ci:event', 'app-loaded', {
21472149
loadTime,
21482150
sqlInitTime,
2151+
preloadCompileTime,
21492152
preloadTime,
21502153
connectTime,
21512154
processedCount,

Diff for: preload.wrapper.ts

+9
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,17 @@ if (cachedData || process.env.GENERATE_PRELOAD_CACHE) {
130130
}
131131

132132
// eslint-disable-next-line import/no-dynamic-require
133+
window.preloadCompileStartTime = Date.now();
133134
require(srcPath);
134135

136+
if (script) {
137+
if (script.cachedDataRejected) {
138+
console.log('preload cache rejected');
139+
} else {
140+
console.log('preload cache hit');
141+
}
142+
}
143+
135144
// See `ts/scripts/generate-preload-cache.ts`
136145
if (script && process.env.GENERATE_PRELOAD_CACHE) {
137146
writeFileSync(cachePath, script.createCachedData());

Diff for: ts/test-mock/benchmarks/startup_bench.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ Bootstrap.regressionBenchmark(
113113

114114
const [, info] = await Promise.all([queue(), run()]);
115115

116-
const { loadTime, preloadTime, connectTime } = info;
117-
const messagesDuration = loadTime - preloadTime - connectTime;
116+
const { loadTime, preloadTime, preloadCompileTime, connectTime } = info;
117+
const messagesDuration =
118+
loadTime - preloadTime - preloadCompileTime - connectTime;
118119

119120
return {
120121
messagesDuration,

Diff for: ts/test-mock/playwright.ts

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import type { SocketStatuses } from '../textsecure/SocketManager';
1919
export type AppLoadedInfoType = Readonly<{
2020
loadTime: number;
2121
preloadTime: number;
22+
preloadCompileTime: number;
2223
connectTime: number;
2324
messagesPerSec: number;
2425
}>;

Diff for: ts/window.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ declare global {
281281
SignalContext: SignalContextType;
282282

283283
// Used only in preload to calculate load time
284+
preloadCompileStartTime: number;
284285
preloadStartTime: number;
285286
preloadEndTime: number;
286287

Diff for: ts/windows/main/phase1-ipc.ts

+10
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,16 @@ const IPC: IPCType = {
9595
ipc.invoke('settings:get:mediaCameraPermissions'),
9696
logAppLoadedEvent: ({ processedCount }) =>
9797
ipc.send('signal-app-loaded', {
98+
// Sequence of events:
99+
// 1. Preload compile start
100+
// 2. Preload start
101+
// 3. Preload end
102+
//
103+
// Compile time is thus: start - compileStart
104+
preloadCompileTime:
105+
window.preloadStartTime - window.preloadCompileStartTime,
106+
107+
// Preload time is: end - start
98108
preloadTime: window.preloadEndTime - window.preloadStartTime,
99109
connectTime: preloadConnectTime - window.preloadEndTime,
100110
processedCount,

0 commit comments

Comments
 (0)