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

async_hooks: use typed array stack as fast path #17780

Closed
wants to merge 4 commits into from

Commits on Dec 20, 2017

  1. Configuration menu
    Copy the full SHA
    d84f16e View commit details
    Browse the repository at this point in the history
  2. async_hooks: use typed array stack as fast path

    - Communicate the current async stack length through a
      typed array field rather than a native binding method
    - Add a new fixed-size `async_ids_fast_stack` typed array
      that contains the async ID stack up to a fixed limit.
      This increases performance noticeably, since most of the time
      the async ID stack will not be more than a handful of
      levels deep.
    - Make the JS `pushAsyncIds()` and `popAsyncIds()` functions
      do the same thing as the native ones if the fast path
      is applicable.
    
    Benchmarks:
    
        $ ./node benchmark/compare.js --new ./node --old ./node-master --runs 10 --filter next-tick process | Rscript benchmark/compare.R
        [00:03:25|% 100| 6/6 files | 20/20 runs | 1/1 configs]: Done
                                                       improvement confidence      p.value
         process/next-tick-breadth-args.js millions=4     19.72 %        *** 3.013913e-06
         process/next-tick-breadth.js millions=4          27.33 %        *** 5.847983e-11
         process/next-tick-depth-args.js millions=12      40.08 %        *** 1.237127e-13
         process/next-tick-depth.js millions=12           77.27 %        *** 1.413290e-11
         process/next-tick-exec-args.js millions=5        13.58 %        *** 1.245180e-07
         process/next-tick-exec.js millions=5             16.80 %        *** 2.961386e-07
    addaleax committed Dec 20, 2017
    Configuration menu
    Copy the full SHA
    6bed72a View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2017

  1. Configuration menu
    Copy the full SHA
    12c10d1 View commit details
    Browse the repository at this point in the history
  2. [squash] bnoordhuis comments

    addaleax committed Dec 21, 2017
    Configuration menu
    Copy the full SHA
    24c80e7 View commit details
    Browse the repository at this point in the history