Docs: clarify benchmark suites — rename SharpTS.Benchmarks → SharpTS.Microbenchmarks, add READMEs#883
Merged
Merged
Conversation
…Microbenchmarks, add READMEs The repo has two benchmark projects with near-identical names but distinct purposes, which made them easy to conflate: - benchmarks/ (PowerShell + shared bench.ts) — external/competitive timing vs Node.js and Bun. Goal: meet or exceed Node. - SharpTS.Benchmarks/ (BenchmarkDotNet, in-process) — internal/headroom timing vs the idiomatic-C# ceiling and the object?/boxing dynamic-typing tax, with allocation profiling. Backs the compiler perf work. Rename SharpTS.Benchmarks → SharpTS.Microbenchmarks to remove the name collision, pin RootNamespace/AssemblyName so the by-string embedded-resource names stay stable, and document the two-axis split: - benchmarks/README.md, SharpTS.Microbenchmarks/README.md - new 'Benchmarking' section in CLAUDE.md (parallel to Conformance Suites) The shared algorithms.ts stays byte-identical between the suites (embedded as SharpTS.Microbenchmarks.algorithms.ts). Verified: Release build clean, all 5 manifest resource names resolve, solution parses, no remaining references.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The repo has two benchmark projects with near-identical names but distinct purposes, which made them easy to conflate:
benchmarks/SharpTS.Microbenchmarks/(wasSharpTS.Benchmarks/)object?/boxing tax)bench.tsSharpTS.sln)They are complementary, not redundant, and can't be merged: BenchmarkDotNet must run in-process against managed code, while the cross-runtime comparison is black-box against the
node/bunexecutables.What
SharpTS.Benchmarks/→SharpTS.Microbenchmarks/(git mv, history preserved) to remove the name collision. All references updated: namespaces,usings, embedded-resource strings,SharpTS.sln, rootSharpTS.csproj, doc mentions.RootNamespace/AssemblyNamein the csproj so the by-string embedded-resource names stay stable across future renames.benchmarks/README.md(external/competitive suite)SharpTS.Microbenchmarks/README.md(internal/headroom suite)CLAUDE.md, parallel to Conformance Suitesbenchmarks/scripts/lib/algorithms.tsstays byte-identical between the suites (embedded asSharpTS.Microbenchmarks.algorithms.ts).Verification
dotnet build -c Releaseclean (0 warnings, 0 errors)[GlobalSetup])dotnet sln listresolves the new project pathgit grepfinds zero remaining trackedSharpTS.BenchmarksreferencesNo functional/runtime code changed — rename + docs only.