| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Merging this PR will degrade performance by 53.38%⚠️ Unknown Walltime execution environment detected⚠️ Different runtime environments detected
⚡ 3 improved benchmarks Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent. Comparing cod-2720-bump-instrument-hooks-in-codspeed-node-to-support-macos (3411926) with main (4dae798) |
Sorry, something went wrong.
Greptile SummaryThis PR adds macOS support to the CodSpeed Node.js SDK by extracting the repeated inline __codspeed_root_frame__ function pattern into shared wrapWithRootFrame/wrapWithRootFrameSync utilities in @codspeed/core, adding walltime benchmark marker support to both the tinybench and vitest plugins, and wiring up a dedicated codspeed-walltime-macos CI job with a macOS-only benchmark guard.
Confidence Score: 5/5Safe to merge — the refactoring is mechanical and correct, the macOS job configuration is clean, and all previously flagged workflow concerns have been resolved. The changes are a clean extraction of a repeated inline-function pattern into shared utilities, with correct invocation at every call site. The new macOS CI job uses runner-version: latest and routes to the production upload endpoint. The walltime marker ordering difference between the two plugins was already discussed at length in prior review threads. The sendBenchmarkMarkers path in packages/tinybench-plugin/src/shared.ts is not exercised by the integration tests (all tests run under instrumentation mode, causing early return). No file requires blocking attention. Important Files Changed
Reviews (22): Last reviewed commit: "feat: add macOS-only vitest benchmark an..." | Re-trigger Greptile |
Sorry, something went wrong.
There was a problem hiding this comment.
olgtm
Sorry, something went wrong.
Congrats! CodSpeed is installed 🎉🆕 1 new benchmark was detected. You will start to see performance impacts in the reports once the benchmarks are run from your default branch. ⚠️ Unknown Walltime execution environment detected
Detected benchmark
|
Sorry, something went wrong.
There was a problem hiding this comment.
lgtm
Sorry, something went wrong.
|
Although CI is failing. |
Sorry, something went wrong.
Emit benchmark start/end markers for the tinybench plugin and the vitest walltime runner, wrapping the measured function in a root frame. The runner consumes the instrument-hooks FIFO stream in order and expects SampleStart > BenchmarkStart > BenchmarkEnd > SampleEnd nesting per benchmark, so the markers must land inside the sample window: - vitest: emit the marker pair before stopBenchmark(), and move stopBenchmark() plus the markers into a finally block so a throwing benchmark cannot leave the profiler started-but-never-stopped - tinybench: emit markers per task between start/stop instead of a single run-level pair; wrap the body in try/finally to keep start/stop balanced when a benchmark throws - benchmark.js: bind wrapWithRootFrame/wrapWithRootFrameSync to the real implementations in the integ test's core mock Add a regression test asserting both markers land between startBenchmark and stopBenchmark in walltime mode.
Add benches/macos.bench.ts guarded with describe.skipIf(!darwin) so it only runs on macOS, and wire the walltime-macos-test CI job to execute it via a direct `node vitest.mjs bench --run macos` invocation.
| Back | FazBrowse Home | New Git URL |
No description provided.