Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

activity flag hook types one at a time to reduce performance impact #716

Closed
StoneCypher opened this issue May 8, 2022 · 3 comments
Closed

Comments

@StoneCypher
Copy link
Owner

StoneCypher commented May 8, 2022

reduction is dramatic for gating hooks off as a group; as their impact grows, gate them off one at a time as well

blocked by #737

@StoneCypher
Copy link
Owner Author

Crimeny, do we ever need this

Pre-hook rate was 19k

Running "General performance suite" suite...
Progress: 100%

  Blind cycle a traffic light 500 times by transition:
    6 804 ops/s, ±1.94%    | 52.66% slower

  Blind cycle a hooked traffic light 500 times by transition:
    1 366 ops/s, ±0.99%    | 90.5% slower

  Blind cycle a traffic light 500 times by action:
    14 372 ops/s, ±2.30%   | fastest

  Blind cycle a hooked traffic light 500 times by action:
    792 ops/s, ±1.98%      | slowest, 94.49% slower

Finished 4 cases!
  Fastest: Blind cycle a traffic light 500 times by action
  Slowest: Blind cycle a hooked traffic light 500 times by action

@StoneCypher
Copy link
Owner Author

And now it's

  Blind cycle a traffic light 500 times by transition:
    6 018 ops/s, ±1.96%    | 89.98% slower

  Blind cycle a traffic light 500 times by action:
    12 290 ops/s, ±2.53%   | 79.54% slower

  Blind cycle a basic-hooked traffic light 500 times by transition:
    1 207 ops/s, ±4.70%    | 97.99% slower

  Blind cycle a named-hooked traffic light 500 times by transition:
    1 173 ops/s, ±5.80%    | 98.05% slower

  Blind cycle an any-transition traffic light 500 times by transition:
    1 267 ops/s, ±1.77%    | 97.89% slower

  Blind cycle an exit hooked traffic light 500 times by transition:
    1 243 ops/s, ±2.17%    | 97.93% slower

  Blind cycle an enter hooked traffic light 500 times by transition:
    1 246 ops/s, ±1.63%    | 97.93% slower

  Blind cycle a standard-transition hooked light by transition:
    1 256 ops/s, ±1.56%    | 97.91% slower

  Blind cycle a main-transition hooked light by transition:
    1 259 ops/s, ±1.59%    | 97.9% slower

  Blind cycle a force-transition hooked light by transition:
    24 351 ops/s, ±1.65%   | 59.47% slower

  Blind cycle a traffic light 500 times by action:
    12 645 ops/s, ±1.85%   | 78.95% slower

  Blind cycle a basic-hooked traffic light 500 times by action:
    796 ops/s, ±1.36%      | 98.68% slower

  Blind cycle a named-hooked traffic light 500 times by action:
    750 ops/s, ±6.79%      | slowest, 98.75% slower

  Blind cycle an any-action traffic light 500 times by action:
    819 ops/s, ±1.27%      | 98.64% slower

  Blind cycle a global-action traffic light 500 times by action:
    815 ops/s, ±1.92%      | 98.64% slower

  Blind cycle an exit hooked traffic light 500 times by action:
    822 ops/s, ±1.00%      | 98.63% slower

  Blind cycle an enter hooked traffic light 500 times by action:
    824 ops/s, ±0.68%      | 98.63% slower

  Blind cycle a standard transition tl 500 times by action:
    60 076 ops/s, ±3.91%   | fastest

  Blind cycle a main transition tl 500 times by action:
    52 154 ops/s, ±7.86%   | 13.19% slower

  Blind cycle a forced transition tl 500 times by action:
    57 609 ops/s, ±2.65%   | 4.11% slower

Finished 20 cases!
  Fastest: Blind cycle a standard transition tl 500 times by action
  Slowest: Blind cycle a named-hooked traffic light 500 times by action

@StoneCypher
Copy link
Owner Author

Okay, some major improvements

Progress: 100%

  Blind cycle a traffic light 500 times by transition:
    6 307 ops/s, ±2.74%    | 91.26% slower

  Blind cycle a traffic light 500 times by action:
    13 195 ops/s, ±1.45%   | 81.71% slower

  Blind cycle a basic-hooked traffic light 500 times by transition:
    1 324 ops/s, ±0.84%    | slowest, 98.16% slower

  Blind cycle a named-hooked traffic light 500 times by transition:
    5 355 ops/s, ±8.69%    | 92.58% slower

  Blind cycle an any-transition traffic light 500 times by transition:
    5 663 ops/s, ±1.68%    | 92.15% slower

  Blind cycle an exit hooked traffic light 500 times by transition:
    5 178 ops/s, ±5.93%    | 92.82% slower

  Blind cycle an enter hooked traffic light 500 times by transition:
    4 977 ops/s, ±6.41%    | 93.1% slower

  Blind cycle a standard-transition hooked light by transition:
    5 613 ops/s, ±1.25%    | 92.22% slower

  Blind cycle a main-transition hooked light by transition:
    5 666 ops/s, ±2.93%    | 92.15% slower

  Blind cycle a force-transition hooked light by transition:
    19 388 ops/s, ±1.11%   | 73.13% slower

  Blind cycle a traffic light 500 times by action:
    13 282 ops/s, ±1.11%   | 81.59% slower

  Blind cycle a basic-hooked traffic light 500 times by action:
    1 560 ops/s, ±1.65%    | 97.84% slower

  Blind cycle a named-hooked traffic light 500 times by action:
    1 416 ops/s, ±1.20%    | 98.04% slower

  Blind cycle an any-action traffic light 500 times by action:
    10 677 ops/s, ±1.26%   | 85.2% slower

  Blind cycle a global-action traffic light 500 times by action:
    10 097 ops/s, ±2.19%   | 86% slower

  Blind cycle an exit hooked traffic light 500 times by action:
    9 075 ops/s, ±1.23%    | 87.42% slower

  Blind cycle an enter hooked traffic light 500 times by action:
    9 455 ops/s, ±0.95%    | 86.89% slower

  Blind cycle a standard transition tl 500 times by action:
    72 032 ops/s, ±1.30%   | 0.16% slower

  Blind cycle a main transition tl 500 times by action:
    72 078 ops/s, ±1.14%   | 0.09% slower

  Blind cycle a forced transition tl 500 times by action:
    72 145 ops/s, ±1.81%   | fastest

Finished 20 cases!
  Fastest: Blind cycle a forced transition tl 500 times by action
  Slowest: Blind cycle a basic-hooked traffic light 500 times by transition

StoneCypher added a commit to StoneCypher/jssm that referenced this issue May 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant