Skip to content

Conversation

@ali-garajian
Copy link
Contributor

if benchmarks don't get negatively affected, we could save some bytes and perhaps even improve performance a bit

@github-actions
Copy link

github-actions bot commented Jan 23, 2026

📊 Tachometer Benchmark Results

Summary

duration

  • create10k: unsure 🔍 -1% - +2% (-11.69ms - +12.53ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 -0% - +0% (-0.05ms - +0.03ms)
    preact-local vs preact-main
  • hydrate1k: faster ✔ 2% - 5% (1.06ms - 2.93ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 -3% - +1% (-0.54ms - +0.18ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 -2% - +1% (-1.45ms - +0.33ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -5% - +1% (-0.08ms - +0.02ms)
    preact-local vs preact-main
  • todo: unsure 🔍 -3% - +1% (-0.93ms - +0.36ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -5% - +1% (-1.53ms - +0.45ms)
    preact-local vs preact-main

usedJSHeapSize

  • create10k: unsure 🔍 -0% - -0% (-0.00ms - -0.00ms)
    preact-local vs preact-main
  • filter-list: unsure 🔍 -0% - +0% (-0.01ms - +0.00ms)
    preact-local vs preact-main
  • hydrate1k: unsure 🔍 -8% - +5% (-0.59ms - +0.37ms)
    preact-local vs preact-main
  • many-updates: unsure 🔍 -0% - +0% (-0.00ms - +0.01ms)
    preact-local vs preact-main
  • replace1k: unsure 🔍 -0% - -0% (-0.00ms - -0.00ms)
    preact-local vs preact-main
  • text-update: unsure 🔍 -4% - +0% (-0.04ms - +0.00ms)
    preact-local vs preact-main
  • todo: unsure 🔍 -0% - -0% (-0.00ms - -0.00ms)
    preact-local vs preact-main
  • update10th1k: unsure 🔍 -0% - +0% (-0.01ms - +0.00ms)
    preact-local vs preact-main

Results

create10k

duration

VersionAvg timevs preact-localvs preact-main
preact-local823.63ms - 840.54ms-unsure 🔍
-1% - +2%
-11.69ms - +12.53ms
preact-main823.00ms - 840.34msunsure 🔍
-2% - +1%
-12.53ms - +11.69ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local19.04ms - 19.04ms-unsure 🔍
-0% - -0%
-0.00ms - -0.00ms
preact-main19.04ms - 19.04msunsure 🔍
+0% - +0%
+0.00ms - +0.00ms
-
filter-list

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.48ms - 16.53ms-unsure 🔍
-0% - +0%
-0.05ms - +0.03ms
preact-main16.49ms - 16.54msunsure 🔍
-0% - +0%
-0.03ms - +0.05ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.54ms - 1.55ms-unsure 🔍
-0% - +0%
-0.01ms - +0.00ms
preact-main1.54ms - 1.55msunsure 🔍
-0% - +0%
-0.00ms - +0.01ms
-
hydrate1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local59.91ms - 61.16ms-faster ✔
2% - 5%
1.06ms - 2.93ms
preact-main61.84ms - 63.23msslower ❌
2% - 5%
1.06ms - 2.93ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local7.20ms - 7.84ms-unsure 🔍
-8% - +5%
-0.59ms - +0.37ms
preact-main7.27ms - 7.98msunsure 🔍
-5% - +8%
-0.37ms - +0.59ms
-
many-updates

duration

VersionAvg timevs preact-localvs preact-main
preact-local16.08ms - 16.44ms-unsure 🔍
-3% - +1%
-0.54ms - +0.18ms
preact-main16.13ms - 16.75msunsure 🔍
-1% - +3%
-0.18ms - +0.54ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local3.73ms - 3.73ms-unsure 🔍
-0% - +0%
-0.00ms - +0.01ms
preact-main3.72ms - 3.73msunsure 🔍
-0% - +0%
-0.01ms - +0.00ms
-
replace1k
  • Browser: chrome-headless
  • Sample size: 100
  • Built by: CI #5308
  • Commit: 34b01e1

duration

VersionAvg timevs preact-localvs preact-main
preact-local60.09ms - 61.32ms-unsure 🔍
-2% - +1%
-1.45ms - +0.33ms
preact-main60.61ms - 61.91msunsure 🔍
-1% - +2%
-0.33ms - +1.45ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local2.99ms - 2.99ms-unsure 🔍
-0% - -0%
-0.00ms - -0.00ms
preact-main2.99ms - 2.99msunsure 🔍
+0% - +0%
+0.00ms - +0.00ms
-

run-warmup-0

VersionAvg timevs preact-localvs preact-main
preact-local26.03ms - 27.09ms-unsure 🔍
-1% - +4%
-0.25ms - +1.14ms
preact-main25.67ms - 26.56msunsure 🔍
-4% - +1%
-1.14ms - +0.25ms
-

run-warmup-1

VersionAvg timevs preact-localvs preact-main
preact-local33.20ms - 34.28ms-unsure 🔍
-2% - +3%
-0.67ms - +0.88ms
preact-main33.08ms - 34.19msunsure 🔍
-3% - +2%
-0.88ms - +0.67ms
-

run-warmup-2

VersionAvg timevs preact-localvs preact-main
preact-local33.80ms - 34.64ms-unsure 🔍
-2% - +2%
-0.74ms - +0.52ms
preact-main33.87ms - 34.81msunsure 🔍
-2% - +2%
-0.52ms - +0.74ms
-

run-warmup-3

VersionAvg timevs preact-localvs preact-main
preact-local27.05ms - 27.40ms-unsure 🔍
-1% - +1%
-0.39ms - +0.18ms
preact-main27.11ms - 27.56msunsure 🔍
-1% - +1%
-0.18ms - +0.39ms
-

run-warmup-4

VersionAvg timevs preact-localvs preact-main
preact-local26.01ms - 27.47ms-unsure 🔍
-2% - +6%
-0.63ms - +1.50ms
preact-main25.52ms - 27.08msunsure 🔍
-6% - +2%
-1.50ms - +0.63ms
-

run-final

VersionAvg timevs preact-localvs preact-main
preact-local22.48ms - 22.99ms-unsure 🔍
-1% - +2%
-0.29ms - +0.49ms
preact-main22.34ms - 22.93msunsure 🔍
-2% - +1%
-0.49ms - +0.29ms
-
text-update
  • Browser: chrome-headless
  • Sample size: 220
  • Built by: CI #5308
  • Commit: 34b01e1

duration

VersionAvg timevs preact-localvs preact-main
preact-local1.70ms - 1.75ms-unsure 🔍
-5% - +1%
-0.08ms - +0.02ms
preact-main1.71ms - 1.80msunsure 🔍
-1% - +5%
-0.02ms - +0.08ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local0.98ms - 1.00ms-unsure 🔍
-4% - +0%
-0.04ms - +0.00ms
preact-main0.99ms - 1.03msunsure 🔍
-1% - +4%
-0.00ms - +0.04ms
-
todo

duration

VersionAvg timevs preact-localvs preact-main
preact-local34.12ms - 34.96ms-unsure 🔍
-3% - +1%
-0.93ms - +0.36ms
preact-main34.33ms - 35.32msunsure 🔍
-1% - +3%
-0.36ms - +0.93ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local1.25ms - 1.25ms-unsure 🔍
-0% - -0%
-0.00ms - -0.00ms
preact-main1.25ms - 1.25msunsure 🔍
+0% - +0%
+0.00ms - +0.00ms
-
update10th1k

duration

VersionAvg timevs preact-localvs preact-main
preact-local30.06ms - 31.43ms-unsure 🔍
-5% - +1%
-1.53ms - +0.45ms
preact-main30.57ms - 32.00msunsure 🔍
-1% - +5%
-0.45ms - +1.53ms
-

usedJSHeapSize

VersionAvg timevs preact-localvs preact-main
preact-local2.95ms - 2.96ms-unsure 🔍
-0% - +0%
-0.01ms - +0.00ms
preact-main2.95ms - 2.96msunsure 🔍
-0% - +0%
-0.00ms - +0.01ms
-

tachometer-reporter-action v2 for CI

@coveralls
Copy link

coveralls commented Jan 23, 2026

Coverage Status

coverage: 99.443%. remained the same
when pulling 34b01e1 on ali-garajian:main
into 60db6f4 on preactjs:main.

Copy link
Member

@rschristian rschristian left a comment

Choose a reason for hiding this comment

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

The benches almost certainly don't cover this situation, the numbers returned shouldn't be too useful.

This PR just trades perf from lowercased event names as props and gives it to camelcased. Latter is probably more popular, so maybe this is a positive change?

else if (name[0] == 'o' && name[1] == 'n') {
useCapture = name != (name = name.replace(CAPTURE_REGEX, '$1'));

// Infer correct casing for DOM built-in events:
Copy link
Member

Choose a reason for hiding this comment

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

Not something that needs to be done here, but we probably should do away with this comment now that we're not inferring anything (and instead just assuming the vent matches DOM event conventions).

@rschristian rschristian merged commit 5358f32 into preactjs:main Jan 24, 2026
13 checks passed
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.

3 participants