Skip to content

Commit eabf124

Browse files
wmertensmaiieul
authored andcommitted
perf(preloader): tweak probabilities
1 parent f90e6a1 commit eabf124

File tree

7 files changed

+12
-11
lines changed

7 files changed

+12
-11
lines changed

packages/qwik/src/core/preloader/preloader.unit.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ test('preloader script', () => {
2121
* dereference objects etc, but that actually results in worse compression
2222
*/
2323
const compressed = compress(Buffer.from(preLoader), { mode: 1, quality: 11 });
24-
expect(compressed.length).toBe(1716);
25-
expect(preLoader.length).toBe(5114);
24+
expect(compressed.length).toBe(1706);
25+
expect(preLoader.length).toBe(5082);
2626
});

packages/qwik/src/core/preloader/queue.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@ export const preload = (name: string | (number | string)[], probability?: number
216216
inverseProbability = 1 - item / 10;
217217
} else {
218218
handleBundle(item, inverseProbability);
219-
inverseProbability *= 1.005;
220219
}
221220
}
222221
} else {

packages/qwik/src/server/preload-impl.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Fragment, jsx, type JSXNode } from '@builder.io/qwik';
22
import type { ResolvedManifest } from '../optimizer/src/types';
3-
import { expandBundles } from './prefetch-strategy';
3+
import { expandBundles } from './preload-strategy';
44
import type { PreloaderOptions } from './types';
55

66
export function includePreloader(
@@ -126,8 +126,8 @@ function normalizePreLoaderOptions(
126126
}
127127

128128
const PreLoaderOptionsDefault: Required<PreloaderOptions> = {
129-
ssrPreloads: 5,
130-
ssrPreloadProbability: 0.7,
129+
ssrPreloads: 7,
130+
ssrPreloadProbability: 0.5,
131131
debug: false,
132132
maxIdlePreloads: 25,
133133
preloadProbability: 0.35,

packages/qwik/src/server/prefetch-strategy.ts renamed to packages/qwik/src/server/preload-strategy.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { ResolvedManifest } from '@builder.io/qwik/optimizer';
22
import { getQueue, preload, resetQueue } from '../core/preloader/queue';
33
import type { QRLInternal } from '../core/qrl/qrl-class';
4-
import { flattenPrefetchResources } from './prefetch-utils';
4+
import { flattenPrefetchResources } from './preload-utils';
55
import type { RenderToStringOptions, SnapshotResult } from './types';
66
import { getPlatform } from '@builder.io/qwik';
77
import { getSymbolHash } from './platform';
@@ -66,10 +66,12 @@ export const expandBundles = (names: string[], resolvedManifest?: ResolvedManife
6666
resetQueue();
6767

6868
let probability = 0.99;
69-
for (const name of names) {
69+
// we assume that after 15 symbols, we're beyond the first screenful of content
70+
// the preloader will load the rest
71+
for (const name of names.slice(0, 15)) {
7072
preload(name, probability);
7173
// later symbols have less probability
72-
probability *= 0.95;
74+
probability *= 0.85;
7375
}
7476

7577
return getQueue().filter(

packages/qwik/src/server/prefetch-utils.unit.ts renamed to packages/qwik/src/server/preload-utils.unit.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { assert, test } from 'vitest';
2-
import { flattenPrefetchResources } from './prefetch-utils';
2+
import { flattenPrefetchResources } from './preload-utils';
33

44
test('flattenPrefetchResources, no imports', () => {
55
const p = [

packages/qwik/src/server/render.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { QInstance } from '../core/util/markers';
66
import type { ResolvedManifest, SymbolMapper } from '../optimizer/src/types';
77
import { getSymbolHash, setServerPlatform } from './platform';
88
import { includePreloader } from './preload-impl';
9-
import { getPreloadPaths } from './prefetch-strategy';
9+
import { getPreloadPaths } from './preload-strategy';
1010
import { getQwikLoaderScript } from './scripts';
1111
import type {
1212
QwikManifest,

0 commit comments

Comments
 (0)