fast icon indicating copy to clipboard operation
fast copied to clipboard

feat: new behavior and execution context model

Open EisenbergEffect opened this issue 1 year ago • 2 comments

Pull Request

📖 Description

This is currently an experiment. I think the APIs are nicer but it's TBD how this will affect performance.

🎫 Issues

👩‍💻 Reviewer Notes

📑 Test Plan

✅ Checklist

  • [ ] I have included a change request file using $ yarn change
  • [ ] I have added tests for my changes.
  • [ ] I have tested my changes.
  • [ ] I have updated the project documentation to reflect my changes.
  • [ ] I have read the CONTRIBUTING documentation and followed the standards for this project.

⏭ Next Steps

EisenbergEffect avatar Jul 27 '22 16:07 EisenbergEffect

📊 Tachometer Benchmark Results

Summary

clickTrigger10x

  • repeat-basic-splice-itemCount=1000&deleteCount=20&addCount=20: unsure 🔍 -2% - +1% (-2.57ms - +1.44ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-basic-splice-loopCount=1000&itemCount=1000&deleteCount=10&addCount=10: slower ❌ 0% - 5% (0.42ms - 7.14ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-push-itemCount=100&addCount=20: unsure 🔍 -3% - +0% (-12.27ms - +0.12ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-push-loopCount=200&itemCount=200: slower ❌ 1% - 2% (29.55ms - 70.55ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-reverse-itemCount=100: slower ❌ 2% - 5% (5.06ms - 17.41ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-reverse-loopCount=200&itemCount=200: slower ❌ 17% - 18% (1378.28ms - 1435.11ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-shift-itemCount=100: unsure 🔍 -2% - +0% (-5.38ms - +0.20ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-shift-loopCount=200&itemCount=200: unsure 🔍 -0% - +1% (-5.73ms - +82.94ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-unshift-itemCount=100&addCount=20: unsure 🔍 -1% - +2% (-1.59ms - +5.69ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-unshift-loopCount=200&itemCount=200&addCount=1: slower ❌ 1% - 3% (27.72ms - 110.31ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary

create10k

  • render-create10k: slower ❌ 3% - 6% (4.29ms - 9.49ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary

createDelete5x

  • render-createDelete5x: slower ❌ 3% - 5% (8.34ms - 15.11ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary

runFile1k

  • observable-runFile1k: unsure 🔍 -7% - +16% (-0.48ms - +1.12ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary

update10th

  • render-update10th: unsure 🔍 -1% - +2% (-1.60ms - +3.05ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary

usedJSHeapSize

  • observable-runFile1k: unsure 🔍 -1% - +0% (-0.29ms - +0.21ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • render-create10k: slower ❌ 1% - 1% (0.26ms - 0.29ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • render-createDelete5x: slower ❌ 2% - 3% (1.29ms - 1.38ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • render-update10th: slower ❌ 1% - 1% (0.28ms - 0.30ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-basic-splice-itemCount=1000&deleteCount=20&addCount=20: unsure 🔍 +0% - +0% (+0.19ms - +0.23ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-basic-splice-loopCount=1000&itemCount=1000&deleteCount=10&addCount=10: slower ❌ 0% - 1% (0.26ms - 0.70ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-push-itemCount=100&addCount=20: slower ❌ 2% - 2% (1.11ms - 1.20ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-push-loopCount=200&itemCount=200: slower ❌ 20% - 20% (18.47ms - 18.53ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-reverse-itemCount=100: slower ❌ 5% - 5% (2.73ms - 2.92ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-reverse-loopCount=200&itemCount=200: slower ❌ 24% - 24% (31.20ms - 31.38ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-shift-itemCount=100: slower ❌ 2% - 2% (1.08ms - 1.17ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-shift-loopCount=200&itemCount=200: slower ❌ 21% - 21% (18.67ms - 18.71ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-unshift-itemCount=100&addCount=20: slower ❌ 2% - 2% (1.10ms - 1.19ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary
  • repeat-nested-unshift-loopCount=200&itemCount=200&addCount=1: slower ❌ 20% - 20% (18.61ms - 18.64ms)
    users/eisenbergeffect/behavior-revision vs master Customize summary

Results

observable-runFile1k

runFile1k

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master6.49ms - 7.59ms-unsure 🔍
-15% - +6%
-1.12ms - +0.48ms
users/eisenbergeffect/behavior-revision6.77ms - 7.94msunsure 🔍
-7% - +16%
-0.48ms - +1.12ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master48.81ms - 49.15ms-unsure 🔍
-0% - +1%
-0.21ms - +0.29ms
users/eisenbergeffect/behavior-revision48.76ms - 49.12msunsure 🔍
-1% - +0%
-0.29ms - +0.21ms
-
render-create10k

create10k

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master166.24ms - 169.87ms-faster ✔
2% - 5%
4.29ms - 9.49ms
users/eisenbergeffect/behavior-revision173.09ms - 176.80msslower ❌
3% - 6%
4.29ms - 9.49ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master46.97ms - 47.00ms-faster ✔
1% - 1%
0.26ms - 0.29ms
users/eisenbergeffect/behavior-revision47.25ms - 47.27msslower ❌
1% - 1%
0.26ms - 0.29ms
-
render-createDelete5x

createDelete5x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master313.96ms - 319.01ms-faster ✔
3% - 5%
8.34ms - 15.11ms
users/eisenbergeffect/behavior-revision325.95ms - 330.47msslower ❌
3% - 5%
8.34ms - 15.11ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master53.20ms - 53.22ms-faster ✔
2% - 3%
1.29ms - 1.38ms
users/eisenbergeffect/behavior-revision54.50ms - 54.59msslower ❌
2% - 3%
1.29ms - 1.38ms
-
render-update10th

update10th

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master174.99ms - 178.75ms-unsure 🔍
-2% - +1%
-3.05ms - +1.60ms
users/eisenbergeffect/behavior-revision176.23ms - 178.97msunsure 🔍
-1% - +2%
-1.60ms - +3.05ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master46.96ms - 46.98ms-faster ✔
1% - 1%
0.28ms - 0.30ms
users/eisenbergeffect/behavior-revision47.26ms - 47.27msslower ❌
1% - 1%
0.28ms - 0.30ms
-
repeat-basic-splice-itemCount=1000&deleteCount=20&addCount=20

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master125.50ms - 128.41ms-unsure 🔍
-1% - +2%
-1.44ms - +2.57ms
users/eisenbergeffect/behavior-revision125.00ms - 127.77msunsure 🔍
-2% - +1%
-2.57ms - +1.44ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master46.17ms - 46.20ms-unsure 🔍
-0% - -0%
-0.23ms - -0.19ms
users/eisenbergeffect/behavior-revision46.38ms - 46.40msunsure 🔍
+0% - +0%
+0.19ms - +0.23ms
-
repeat-basic-splice-loopCount=1000&itemCount=1000&deleteCount=10&addCount=10

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master145.69ms - 151.88ms-faster ✔
0% - 5%
0.42ms - 7.14ms
users/eisenbergeffect/behavior-revision151.26ms - 153.86msslower ❌
0% - 5%
0.42ms - 7.14ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master53.06ms - 53.51ms-faster ✔
0% - 1%
0.26ms - 0.70ms
users/eisenbergeffect/behavior-revision53.75ms - 53.78msslower ❌
0% - 1%
0.26ms - 0.70ms
-
repeat-nested-push-itemCount=100&addCount=20

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master380.93ms - 391.34ms-unsure 🔍
-0% - +3%
-0.12ms - +12.27ms
users/eisenbergeffect/behavior-revision376.69ms - 383.43msunsure 🔍
-3% - +0%
-12.27ms - +0.12ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master50.64ms - 50.69ms-faster ✔
2% - 2%
1.11ms - 1.20ms
users/eisenbergeffect/behavior-revision51.78ms - 51.86msslower ❌
2% - 2%
1.11ms - 1.20ms
-
repeat-nested-push-loopCount=200&itemCount=200

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master3322.43ms - 3336.66ms-faster ✔
1% - 2%
29.55ms - 70.55ms
users/eisenbergeffect/behavior-revision3360.37ms - 3398.82msslower ❌
1% - 2%
29.55ms - 70.55ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master91.55ms - 91.60ms-faster ✔
17% - 17%
18.47ms - 18.53ms
users/eisenbergeffect/behavior-revision110.06ms - 110.09msslower ❌
20% - 20%
18.47ms - 18.53ms
-
repeat-nested-reverse-itemCount=100

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master322.74ms - 329.42ms-faster ✔
2% - 5%
5.06ms - 17.41ms
users/eisenbergeffect/behavior-revision332.12ms - 342.51msslower ❌
2% - 5%
5.06ms - 17.41ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master55.83ms - 55.86ms-faster ✔
5% - 5%
2.73ms - 2.92ms
users/eisenbergeffect/behavior-revision58.58ms - 58.77msslower ❌
5% - 5%
2.73ms - 2.92ms
-
repeat-nested-reverse-loopCount=200&itemCount=200

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master7879.11ms - 7919.93ms-faster ✔
15% - 15%
1378.28ms - 1435.11ms
users/eisenbergeffect/behavior-revision9286.44ms - 9325.99msslower ❌
17% - 18%
1378.28ms - 1435.11ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master131.00ms - 131.03ms-faster ✔
19% - 19%
31.20ms - 31.38ms
users/eisenbergeffect/behavior-revision162.21ms - 162.39msslower ❌
24% - 24%
31.20ms - 31.38ms
-
repeat-nested-shift-itemCount=100

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master251.80ms - 255.85ms-unsure 🔍
-0% - +2%
-0.20ms - +5.38ms
users/eisenbergeffect/behavior-revision249.31ms - 253.15msunsure 🔍
-2% - +0%
-5.38ms - +0.20ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master50.65ms - 50.67ms-faster ✔
2% - 2%
1.08ms - 1.17ms
users/eisenbergeffect/behavior-revision51.74ms - 51.83msslower ❌
2% - 2%
1.08ms - 1.17ms
-
repeat-nested-shift-loopCount=200&itemCount=200

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master6292.33ms - 6370.93ms-unsure 🔍
-1% - +0%
-82.94ms - +5.73ms
users/eisenbergeffect/behavior-revision6349.72ms - 6390.75msunsure 🔍
-0% - +1%
-5.73ms - +82.94ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master90.94ms - 90.96ms-faster ✔
17% - 17%
18.67ms - 18.71ms
users/eisenbergeffect/behavior-revision109.62ms - 109.65msslower ❌
21% - 21%
18.67ms - 18.71ms
-
repeat-nested-unshift-itemCount=100&addCount=20

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master288.89ms - 293.29ms-unsure 🔍
-2% - +1%
-5.69ms - +1.59ms
users/eisenbergeffect/behavior-revision290.24ms - 296.04msunsure 🔍
-1% - +2%
-1.59ms - +5.69ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master50.66ms - 50.69ms-faster ✔
2% - 2%
1.10ms - 1.19ms
users/eisenbergeffect/behavior-revision51.78ms - 51.86msslower ❌
2% - 2%
1.10ms - 1.19ms
-
repeat-nested-unshift-loopCount=200&itemCount=200&addCount=1

clickTrigger10x

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master4269.63ms - 4328.20ms-faster ✔
1% - 3%
27.72ms - 110.31ms
users/eisenbergeffect/behavior-revision4338.82ms - 4397.04msslower ❌
1% - 3%
27.72ms - 110.31ms
-

usedJSHeapSize

VersionAvg timevs mastervs users/eisenbergeffect/behavior-revision
master91.46ms - 91.48ms-faster ✔
17% - 17%
18.61ms - 18.64ms
users/eisenbergeffect/behavior-revision110.08ms - 110.11msslower ❌
20% - 20%
18.61ms - 18.64ms
-

tachometer-reporter-action v2 for Validate Benchmarks

github-actions[bot] avatar Jul 27 '22 16:07 github-actions[bot]

Ignore the ready to review thing. I accidentally fat fingered a button while scrolling on mobile.

KingOfTac avatar Jul 27 '22 23:07 KingOfTac

Ok, this one is ready for review.

EisenbergEffect avatar Sep 01 '22 00:09 EisenbergEffect

Preliminary Krausest tests seem to show this as an improvement. I need to try a few more things to be sure though.

EisenbergEffect avatar Sep 07 '22 23:09 EisenbergEffect