Title: Support per-benchmark-suite setup and teardown · Issue #58488 · nodejs/node · GitHub
Open Graph Title: Support per-benchmark-suite setup and teardown · Issue #58488 · nodejs/node
X Title: Support per-benchmark-suite setup and teardown · Issue #58488 · nodejs/node
Description: Currently with the benchmark utility, if a benchmark needs to perform setup and tear down, it can only be done on a per-run basis. A good example would be: node/benchmark/module/module-require.js Line 15 in fcf5de0 createEntryPoint(n); T...
Open Graph Description: Currently with the benchmark utility, if a benchmark needs to perform setup and tear down, it can only be done on a per-run basis. A good example would be: node/benchmark/module/module-require.js L...
X Description: Currently with the benchmark utility, if a benchmark needs to perform setup and tear down, it can only be done on a per-run basis. A good example would be: node/benchmark/module/module-require.js L...
Opengraph URL: https://github.com/nodejs/node/issues/58488
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Support per-benchmark-suite setup and teardown","articleBody":"Currently with the benchmark utility, if a benchmark needs to perform setup and tear down, it can only be done on a per-run basis. A good example would be: \n\nhttps://github.com/nodejs/node/blob/fcf5de008a59229fe65a7b8e4e45fb4cfef4de81/benchmark/module/module-require.js#L15\n\nThis benchmark needs to create 10K files per-run, so for 60 runs * 3 configurations, it needs to create and delete 60 * 3 * 10K files, so the majority of the time spent on running the benchmark come from this process instead of the actual benchmarking that's done in between.\n\nIf for example we support setup and teardown on a per-suite basis (it doesn't necessarily have to be config-specific, a benchmark can do a setup for all the configs in one setup/teardown pair), then this would be reduced to only creating/deleting 3 * 10K files.\n\nThe setup/teardown should probably be done somewhere around here - before starting the queue and after executing the last job in the queue:\n\nhttps://github.com/nodejs/node/blob/71785889c893a82f335e04a7e81c6ba08546a32e/benchmark/common.js#L234-L241","author":{"url":"https://github.com/joyeecheung","@type":"Person","name":"joyeecheung"},"datePublished":"2025-05-28T08:16:44.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":4},"url":"https://github.com/58488/node/issues/58488"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:44397190-3fb7-1f3c-b193-5ac181630323 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C000:3E084C:1214103:1897602:6A4C6EC7 |
| html-safe-nonce | 0b354a0619de5a2b6ce748f59823e48c235739bcc0ec0ebab21fe9f8e4e7a517 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMDAwOjNFMDg0QzoxMjE0MTAzOjE4OTc2MDI6NkE0QzZFQzciLCJ2aXNpdG9yX2lkIjoiMTY3ODc4NjE2OTU1NzI0OTczNSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 04be7f5e54b93fb996a16419cb603fb7775c5889008fb5284bc66319d12cd728 |
| hovercard-subject-tag | issue:3096476710 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/58488/issue_layout |
| twitter:image | https://opengraph.githubassets.com/c5021a65c54833ce858c0ac647cb217484cdcdb47320bf0f88257cd74c95ccc6/nodejs/node/issues/58488 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c5021a65c54833ce858c0ac647cb217484cdcdb47320bf0f88257cd74c95ccc6/nodejs/node/issues/58488 |
| og:image:alt | Currently with the benchmark utility, if a benchmark needs to perform setup and tear down, it can only be done on a per-run basis. A good example would be: node/benchmark/module/module-require.js L... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | joyeecheung |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| 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 | 14099438da5379150f15a2892474c7c7e6c0e55e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width