Skip to content

Record the 1671st column, the first since the 1620th - #854

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
docs/benchmark-1671-column
Aug 9, 2026
Merged

Record the 1671st column, the first since the 1620th#854
Rafael-SOWNet merged 1 commit into
masterfrom
docs/benchmark-1671-column

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Collaborator

Closes #167 — the half the benchmark itself could not supply.

#850 added EvalTrig and EvalTrigPrecise and stopped the allocation figure being discarded. The Kernel Benchmark has now run on master with both, so these are a GitHub runner's numbers rather than my laptop's.

What the new rows say

per operation
EvalTrig (100 digits, the default) 1,344,115 ns
EvalTrigPrecise (500 digits) 43,285,515 ns

Thirty-two times the cost for five times the digits, which is what @Happypig375's "add as many benchmarks as needed" was for — the issue's premise now has a row that will show it moving.

Allocation gets its own table

Rather than doubling the width of the main one, which is already fifteen columns. One column for now, because this is the first version measured for it.

EvalEasy allocating nothing is the proof of the caching note, not a further argument for it. Evaluating 1 + 2 + log(2, 3) + sqrt(4) - 4 ^ 7 + e * pi cannot allocate zero bytes. A dictionary lookup can. The timing said 2 ns and I argued from it; the allocation figure settles it.

RunEasy, RunMedium and RunHard also allocate nothing, for the honest reason — a compiled delegate over Complex has nothing to put on the heap. Worth stating so the two zeroes are not read as the same thing.

Documentation only.

🤖 Generated with Claude Code

The half of #167 that the benchmark itself could not supply: a column. #850
added EvalTrig and EvalTrigPrecise and stopped the allocation figure being
discarded, and the Kernel Benchmark has now run on master with both, so the
numbers are from a GitHub runner rather than from a contributor's machine.

Trigonometry at five hundred digits is 43.3 ms against 1.3 ms at the default
hundred -- thirty-two times, which is what the issue asked to be able to see.

Allocation gets a table of its own rather than doubling the width of the
main one. EvalEasy allocating nothing is worth reading twice: it is the proof
of the caching note above it rather than a further argument for it, since
evaluating that expression cannot allocate zero bytes and a dictionary lookup
can.

Closes #167.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Rafael-SOWNet
Rafael-SOWNet merged commit 9141554 into master Aug 9, 2026
25 checks passed
@Rafael-SOWNet
Rafael-SOWNet deleted the docs/benchmark-1671-column branch August 9, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make commit numbers in version_performance_control.md links to the commit they refer to

1 participant