-
Notifications
You must be signed in to change notification settings - Fork 30k
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
build: build benchmark addons like test addons #29995
Conversation
Since worker threads are complete Node.js environments, including the ability to load native addons, and since those native addons can allocate resources to be freed when objects go out of scope, and since, upon worker thread exit, the engine does not invoke the weak callbacks responsible for freeing resources which still have references, this modification introduces tracking for weak references such that a list of outstanding weak references is maintained. This list is traversed during environment teardown. The callbacks for the remaining weak references are called. This change is also relevant for Node.js embedder scenarios, because in those cases the process also outlives the `node::Environment` and therefore weak callbacks should also be rendered as environment cleanup hooks to ensure proper cleanup after native addons. This changes introduces the means by which this can be accomplished. A benchmark is included which measures the time it takes to execute the weak reference callback for a given number of weak references. Re: tc39/proposal-weakrefs#125 (comment) PR-URL: #28428 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
cc @nodejs/n-api @nodejs/build-files @Trott |
Benchmark CI: https://ci.nodejs.org/job/node-test-commit-custom-suites-freestyle/9538/ (✔️) |
I propose fast-tracking this to un-break nightly CI. Collaborators, please 👍 here if you agree. Thanks! |
Going to step away from my computer for a bit. Still waiting for https://ci.nodejs.org/job/node-test-commit-arm/26747/nodes=debian9-docker-armv7/ to complete (it was queued for four hours waiting for a free |
Build the addons for benchmarks in the same way that the addons for tests are built. PR-URL: nodejs#29995 Fixes: nodejs/build#1961 Refs: nodejs@53ca0b9#commitcomment-35494896 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Landed in c8df5cf. |
Build the addons for benchmarks in the same way that the addons for tests are built. PR-URL: nodejs#29995 Fixes: nodejs/build#1961 Refs: nodejs@53ca0b9#commitcomment-35494896 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Build the addons for benchmarks in the same way that the addons for tests are built. PR-URL: #29995 Fixes: nodejs/build#1961 Refs: 53ca0b9#commitcomment-35494896 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Build the addons for benchmarks in the same way that the addons for tests are built. PR-URL: #29995 Fixes: nodejs/build#1961 Refs: 53ca0b9#commitcomment-35494896 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Build the addons for benchmarks in the same way that the addons for tests are built. PR-URL: #29995 Fixes: nodejs/build#1961 Refs: 53ca0b9#commitcomment-35494896 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Build the addons for benchmarks in the same way that the addons for tests are built. PR-URL: #29995 Fixes: nodejs/build#1961 Refs: 53ca0b9#commitcomment-35494896 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Build the addons for benchmarks in the same way that the addons for
tests are built.
Fixes: nodejs/build#1961
Refs: 53ca0b9#commitcomment-35494896
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes