Skip to content

Extend prefetching/preloading section of the README - #260

Merged
danleh merged 1 commit into
WebKit:mainfrom
danleh:readme-addendum
Jan 15, 2026
Merged

danleh merged 1 commit into
WebKit:mainfrom
danleh:readme-addendum

Conversation

@danleh

@danleh danleh commented Jan 15, 2026

Copy link
Copy Markdown
Contributor

as proposed by @kmiller68 in #258 (comment)

@danleh
danleh requested a review from kmiller68 January 15, 2026 09:07
@netlify

netlify Bot commented Jan 15, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for webkit-jetstream-preview ready!

Name Link
🔨 Latest commit 0d19533
🔍 Latest deploy log https://app.netlify.com/projects/webkit-jetstream-preview/deploys/6968ae4747935d00099f082e
😎 Deploy Preview https://deploy-preview-260--webkit-jetstream-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment thread README.md
In order to avoid the CPU frequency spinning down between tests we prefetch all assets before any of the tests start in the browser.
(In the CLI/shell runner we assume all assets are on disk.)
Assets are saved in a blob URL so they can be cached on disk.
This lowers the peak memory footprint of the benchmark to a sustainable level.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true in general (i.e., for non-JSC engines)? I.e., does the content behind a blob URL get swapped out of memory to disk before/between workloads? (My assumption so far was that the benefit of the blob URLs is to avoid another network request during the measurement window and to avoid the OS scheduler and CPU dynamic frequency scaling to affect the measurement due to I/O; not that this has a memory benefit.)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding is that I/O / IPC is fast enough that it doesn't make a noticeable difference in CPU frequency scaling. I'm certainly not an expert in this part of WebKit but our WebInspector indicates the blobs are coming from disk. Additionally, on iOS if all the resources were in memory (in addition to the working set of some of the line items) I think we'd be well past the jetsam limit.

Even if the blobs were kept in memory I think there is still an IPC request in the timing window because we have to get the blob from our networking process. I would assume Chrome/FF have similar behavior?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, thanks for the WebKit background. I don't know whether getting the blob involves IPC on Chrome.

@kmiller68 kmiller68 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@danleh
danleh merged commit 1cbd5f1 into WebKit:main Jan 15, 2026
23 checks passed
@danleh
danleh deleted the readme-addendum branch January 15, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants