GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — JavaScriptKit/Benchmarks at main · wfltaylor/JavaScriptKit

Expand file tree

/

Benchmarks

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
 
 
/

Benchmarks

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Sources
Sources
 
 
Package.swift
Package.swift
 
 
README.md
README.md
 
 
package.json
package.json
 
 
run.js
run.js
 
 

README.md

Outline

JavaScriptKit Benchmarks

This directory contains performance benchmarks for JavaScriptKit.

Building Benchmarks

swift package --swift-sdk $SWIFT_SDK_ID js -c release

Running Benchmarks

# Run with default settings
node run.js

# Save results to a JSON file
node run.js --output=results.json

# Run in adaptive mode until results stabilize
node run.js --adaptive --output=stable-results.json

# Compare with previous results
node run.js --baseline=previous-results.json

# Filter benchmarks by name
node run.js --filter=Call
node run.js --filter=/^Property access\//

Identity Mode Benchmarks

The benchmark suite includes identity-mode variants (@JS(identityMode: true)) of the core classes to measure pointer identity caching. Both variants are in the same build and run as regular benchmarks alongside everything else.

# Run only identity benchmarks
node --expose-gc run.js --filter=Identity

# Run only pointer-mode identity benchmarks
node --expose-gc run.js --filter=Identity/pointer

# Run only non-identity baseline
node --expose-gc run.js --filter=Identity/none

Identity Scenarios

Scenario What it measures
passBothWaysRoundtrip Same object crossing boundary repeatedly (cache hit path)
getPoolRepeated_100 Bulk return of 100 cached objects (model collection pattern)
churnObjects Create, roundtrip, release cycle (FinalizationRegistry cleanup pressure)
swiftConsumesSameObject JS passes same object to Swift repeatedly
swiftCreatesObject Fresh object creation overhead (cache miss path)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.