| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format) |
| route-controller | voltron_pull_requests_fragments |
| route-action | pull_request_layout |
| fetch-nonce | v2:8da75c56-ca23-dda4-4dd3-7979c623e884 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | CED2:1D8768:518BCE:6D553A:6AED19C0 |
| html-safe-nonce | 1e602fd5db142b8c2f897a6b0d74b6847eaf8745e938afcbfdee0d9e41f97f04 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRUQyOjFEODc2ODo1MThCQ0U6NkQ1NTNBOjZBRUQxOUMwIiwidmlzaXRvcl9pZCI6IjkwMjI5NjczMDAyMTQ2ODYwOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 38133dd3b470fbb84e4cc714c0d21b899a8ca4e86f5866bb832f5e986a4f800d |
| hovercard-subject-tag | pull_request:4190237441 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | ///voltron/pull_requests_fragments/pull_request_layout |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/nodejs/node/64971/pull_request_layout |
| twitter:image | https://opengraph.githubassets.com/e060363e928438b19e82acdc4343344c3492ac4e6bc7691a6d2b06c4ca0b7852/nodejs/node/pull/64971 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/e060363e928438b19e82acdc4343344c3492ac4e6bc7691a6d2b06c4ca0b7852/nodejs/node/pull/64971 |
| og:image:alt | Fixes: #64970
CreateFunction() ran on every getFunction() call, every getFunctions() call, and every read of the functions accessor, each time emitting a trampoline, allocating an FFIFunctionInfo, ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | trivikr |
| hostname | github.com |
| expected-hostname | github.com |
| None | 120085d0bcec1f427e3ab45302c8b95f873d26ad21984dc86d62ab2c10158f41 |
| turbo-cache-control | no-cache |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e12fd03aa775dceadc5a793c3a0791e43ca256bb |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | pull-requests |
| Skip to content | https://github.com/nodejs/node/pull/64971#start-of-content |
| https://github.com/ |
| Sign in | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F64971 |
| GitHubRepository hosting, code review, and collaboration | https://github.com/platform |
| CopilotAI coding agent for tasks, projects, and automated work | https://github.com/features/copilot |
| ActionsCI/CD and automation | https://github.com/features/actions |
| Code QualityQuality analysis, fixes, and enforcement | https://github.com/features/code-quality |
| CodespacesCloud development environments | https://github.com/features/codespaces |
| Code SecurityVulnerability detection and remediation | https://github.com/security/advanced-security/code-security |
| Secret ProtectionSecret scanning and leak prevention | https://github.com/security/advanced-security/secret-protection |
| All Features | https://github.com/features |
| Documentation | https://docs.github.com/en |
| Training | https://learn.github.com/skills |
| Certifications | https://learn.github.com/credentials |
| Build with Copilot | https://github.com/features/ai |
| Customize Copilot | https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview |
| Integrations | https://github.com/marketplace |
| Trending repos | https://github.com/trending |
| GitHub Sponsors | https://github.com/open-source/sponsors |
| Developer articles | https://github.com/resources/articles |
| ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place. | https://github.blog/changelog/ |
| Enterprises | https://github.com/enterprise |
| Team | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| See all industries | https://github.com/solutions/industry |
| Why GitHub | https://github.com/why-github |
| Customer Stories | https://github.com/customer-stories |
| Business insights | https://github.com/solutions/executive-insights |
| Trust Center | https://github.com/trust-center |
| GitHub Advanced SecurityEnterprise-grade code security | https://github.com/security/advanced-security |
| Copilot for businessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/enterprise/premium-support |
| Documentation | https://docs.github.com/en |
| Resource center | https://github.com/resources |
| Blog | https://github.blog/ |
| Events & webinars | https://github.com/resources/events |
| Community Forum | https://github.com/orgs/community/discussions |
| Customer Stories | https://github.com/customer-stories |
| Integrations | https://github.com/marketplace |
| Customer support | https://help.github.com/ |
| Training | https://learn.github.com/skills |
| GitHub Status | https://www.githubstatus.com/ |
| About | https://github.com/about |
| Partners | https://github.com/partners |
| Changelog | https://github.blog/changelog/ |
| GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub. | https://githubuniverse.com/ |
| Pricing | https://github.com/pricing |
| Sign in | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F64971 |
| Sign up | https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=nodejs%2Fnode |
| Reload | https://github.com/nodejs/node/pull/64971 |
| Reload | https://github.com/nodejs/node/pull/64971 |
| Reload | https://github.com/nodejs/node/pull/64971 |
| nodejs | https://github.com/nodejs |
| node | https://github.com/nodejs/node |
| Code | https://github.com/nodejs/node |
| Issues655 (655) | https://github.com/nodejs/node/issues |
| Pull requests666 (666) | https://github.com/nodejs/node/pulls |
| Actions | https://github.com/nodejs/node/actions |
| Projects | https://github.com/nodejs/node/projects |
| Security and quality | https://github.com/nodejs/node/security |
| Insights | https://github.com/nodejs/node/pulse |
| https://github.com/nodejs/node |
| trivikr | https://github.com/trivikr |
| nodejs:main | https://github.com/nodejs/node/tree/main |
| trivikr:ffi-get-function-reuse-wrapper | https://github.com/trivikr/node/tree/ffi-get-function-reuse-wrapper |
| Conversation | https://github.com/nodejs/node/pull/64971 |
| Commits1 (1) | https://github.com/nodejs/node/pull/64971/commits |
| Checks | https://github.com/nodejs/node/pull/64971/checks |
| Files changed | https://github.com/nodejs/node/pull/64971/files |
| ffi: reuse the callable created per symbol | https://github.com/nodejs/node/pull/64971#top |
| trivikr | https://github.com/trivikr |
| nodejs:main | https://github.com/nodejs/node/tree/main |
| trivikr:ffi-get-function-reuse-wrapper | https://github.com/trivikr/node/tree/ffi-get-function-reuse-wrapper |
|
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| Aug 2, 2026 | https://github.com/nodejs/node/pull/64971#issue-5044936991 |
| #64970 | https://github.com/nodejs/node/issues/64970 |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| https://github.com/nodejs-github-bot |
| nodejs-github-bot | https://github.com/nodejs-github-bot |
| Aug 2, 2026 | https://github.com/nodejs/node/pull/64971#issuecomment-5160808217 |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
|
Aug 2, 2026
| https://github.com/nodejs/node/pull/64971#ref-issue-5044927444 |
|
ffi: getFunction() and the functions accessor rebuild wrappers on every call
#64970
| https://github.com/nodejs/node/issues/64970 |
| https://github.com/nodejs-github-bot |
| nodejs-github-bot | https://github.com/nodejs-github-bot |
|
c++
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Ac%2B%2B |
|
ffi
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Affi |
|
needs-ci
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Aneeds-ci |
| Aug 2, 2026 | https://github.com/nodejs/node/pull/64971#event-28860422519 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
|
request-ci
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Arequest-ci |
| Aug 2, 2026 | https://github.com/nodejs/node/pull/64971#event-28860867206 |
| https://github.com/apps/codecov |
| codecov | https://github.com/apps/codecov |
| Aug 3, 2026 | https://github.com/nodejs/node/pull/64971#issuecomment-5161208376 |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| Codecov | https://app.codecov.io/gh/nodejs/node/pull/64971?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| 51a55d4 | https://app.codecov.io/gh/nodejs/node/commit/51a55d4b38f98324bd552026ad4a73e9d7caacc7?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| bf2f995 | https://app.codecov.io/gh/nodejs/node/commit/bf2f99566112d0e144b17fef30ad5a371e1d55ec?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| Files with missing lines | https://app.codecov.io/gh/nodejs/node/pull/64971?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| src/node_ffi.cc | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&filepath=src%2Fnode_ffi.cc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs#diff-c3JjL25vZGVfZmZpLmNj |
| 4 Missing and 1 partial ⚠️ | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| lib/ffi.js | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&filepath=lib%2Fffi.js&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs#diff-bGliL2ZmaS5qcw== |
| 3 Missing ⚠️ | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| Files with missing lines | https://app.codecov.io/gh/nodejs/node/pull/64971?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| src/node_ffi.h | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&filepath=src%2Fnode_ffi.h&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs#diff-c3JjL25vZGVfZmZpLmg= |
| lib/ffi.js | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&filepath=lib%2Fffi.js&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs#diff-bGliL2ZmaS5qcw== |
| src/node_ffi.cc | https://app.codecov.io/gh/nodejs/node/pull/64971?src=pr&el=tree&filepath=src%2Fnode_ffi.cc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs#diff-c3JjL25vZGVfZmZpLmNj |
| 37 files with indirect coverage changes | https://app.codecov.io/gh/nodejs/node/pull/64971/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=nodejs |
| Test Analytics | https://docs.codecov.com/docs/test-analytics |
| JS Bundle Analysis | https://docs.codecov.com/docs/javascript-bundle-analysis |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| https://github.com/ShogunPanda |
| ShogunPanda | https://github.com/ShogunPanda |
|
Aug 3, 2026
| https://github.com/nodejs/node/pull/64971#pullrequestreview-4841447118 |
|
View reviewed changes
| https://github.com/nodejs/node/pull/64971/files/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
|
author ready
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22author%20ready%22 |
| Aug 3, 2026 | https://github.com/nodejs/node/pull/64971#event-28872047576 |
| https://github.com/apps/github-actions |
| github-actions | https://github.com/apps/github-actions |
|
request-ci
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Arequest-ci |
| Aug 3, 2026 | https://github.com/nodejs/node/pull/64971#event-28874625416 |
| https://github.com/nodejs-github-bot |
| Sign in to view | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F64971 |
| https://github.com/nodejs-github-bot |
| nodejs-github-bot | https://github.com/nodejs-github-bot |
| Aug 3, 2026 | https://github.com/nodejs/node/pull/64971#issuecomment-5167789395 |
| https://ci.nodejs.org/job/node-test-pull-request/75433/ | https://ci.nodejs.org/job/node-test-pull-request/75433/ |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| August 3, 2026 15:07 | https://github.com/nodejs/node/pull/64971#event-28896011678 |
| https://github.com/trivikr |
| Sign in to view | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F64971 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| August 4, 2026 14:47 | https://github.com/nodejs/node/pull/64971#event-28956258972 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
|
commit-queue
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Acommit-queue |
|
commit-queue
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Acommit-queue |
| Aug 9, 2026 | https://github.com/nodejs/node/pull/64971#event-29173295675 |
|
| https://github.com/trivikr |
| ffi: reuse the callable created per symbol | https://github.com/nodejs/node/pull/64971/commits/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| bf2f995 | https://github.com/nodejs/node/pull/64971/commits/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| nodejs#64971 | https://github.com/nodejs/node/pull/64971 |
| nodejs#64970 | https://github.com/nodejs/node/issues/64970 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| force-pushed | https://github.com/nodejs/node/compare/16a5d6e27c6a02f5ef63cf5fa4d5fbb913ac2d21..bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| 16a5d6e | https://github.com/nodejs/node/commit/16a5d6e27c6a02f5ef63cf5fa4d5fbb913ac2d21 |
| bf2f995 | https://github.com/nodejs/node/commit/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
|
Compare
| https://github.com/nodejs/node/compare/16a5d6e27c6a02f5ef63cf5fa4d5fbb913ac2d21..bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| August 9, 2026 23:19 | https://github.com/nodejs/node/pull/64971#event-29194985130 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| bf2f995 | https://github.com/nodejs/node/commit/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| Aug 9, 2026 | https://github.com/nodejs/node/pull/64971#event-29194987518 |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| Aug 9, 2026 | https://github.com/nodejs/node/pull/64971#issuecomment-5234367773 |
| bf2f995 | https://github.com/nodejs/node/commit/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
| https://github.com/trivikr |
| trivikr | https://github.com/trivikr |
| August 9, 2026 23:19 | https://github.com/nodejs/node/pull/64971#event-29194995451 |
| aduh95 | https://github.com/aduh95 |
|
Aug 13, 2026
| https://github.com/nodejs/node/pull/64971#ref-commit-93ec6e6 |
|
| https://github.com/trivikr |
|
| https://github.com/aduh95 |
| ffi: reuse the callable created per symbol | https://github.com/nodejs/node/commit/93ec6e65a851f1990c166836182ebee054b3dff7 |
| 93ec6e6 | https://github.com/nodejs/node/commit/93ec6e65a851f1990c166836182ebee054b3dff7 |
| #64971 | https://github.com/nodejs/node/pull/64971 |
| #64970 | https://github.com/nodejs/node/issues/64970 |
| aduh95 | https://github.com/aduh95 |
|
Aug 25, 2026
| https://github.com/nodejs/node/pull/64971#ref-commit-3e6688c |
|
| https://github.com/trivikr |
|
| https://github.com/aduh95 |
| ffi: reuse the callable created per symbol | https://github.com/nodejs/node/commit/3e6688c5e34dc377d90e701925e061a9ef906f4e |
| 3e6688c | https://github.com/nodejs/node/commit/3e6688c5e34dc377d90e701925e061a9ef906f4e |
| #64971 | https://github.com/nodejs/node/pull/64971 |
| #64970 | https://github.com/nodejs/node/issues/64970 |
| https://github.com/apps/github-actions |
| github-actions | https://github.com/apps/github-actions |
|
Aug 25, 2026
| https://github.com/nodejs/node/pull/64971#ref-pullrequest-5251528519 |
|
2026-08-26, Version 26.8.0 (Current)
#65551
| https://github.com/nodejs/node/pull/65551 |
| https://github.com/HoonDongKang |
| HoonDongKang | https://github.com/HoonDongKang |
|
Oct 2, 2026
| https://github.com/nodejs/node/pull/64971#ref-pullrequest-5672785531 |
|
ffi: add getFunction cache-miss benchmark
#66456
| https://github.com/nodejs/node/pull/66456 |
| nodejs-github-bot | https://github.com/nodejs-github-bot |
|
Oct 20, 2026
| https://github.com/nodejs/node/pull/64971#ref-commit-4c14b9f |
|
| https://github.com/HoonDongKang |
| ffi: add getFunction cache-miss benchmark | https://github.com/nodejs/node/commit/4c14b9f58a01dec9ae9586a03a3615ea73d02d32 |
| 4c14b9f | https://github.com/nodejs/node/commit/4c14b9f58a01dec9ae9586a03a3615ea73d02d32 |
| #66456 | https://github.com/nodejs/node/pull/66456 |
| #64969 | https://github.com/nodejs/node/pull/64969 |
| #64971 | https://github.com/nodejs/node/pull/64971 |
| https://github.co/hiddenchars |
| https://github.com/nodejs/node/pull/{{ revealButtonHref }} |
| Sign up for free | https://github.com/join?source=comment-repo |
| Sign in to comment | https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fpull%2F64971 |
|
| https://github.com/ShogunPanda |
|
ShogunPanda
| https://github.com/ShogunPanda |
|
| https://github.com/nodejs/node/pull/64971/files/bf2f99566112d0e144b17fef30ad5a371e1d55ec |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
|
author ready
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3A%22author%20ready%22 |
|
c++
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Ac%2B%2B |
|
ffi
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Affi |
|
needs-ci
| https://github.com/nodejs/node/issues?q=state%3Aopen%20label%3Aneeds-ci |
|
ffi: getFunction() and the functions accessor rebuild wrappers on every call
| https://github.com/nodejs/node/issues/64970 |
| Please reload this page | https://github.com/nodejs/node/pull/64971 |
|
| https://github.com/trivikr |
|
| https://github.com/nodejs-github-bot |
|
| https://github.com/ShogunPanda |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |