Skip to content

feat: record the installed size of a system in the results - #47

Open
psiha wants to merge 1 commit into
mainfrom
feat/size-report
Open

psiha wants to merge 1 commit into
mainfrom
feat/size-report

Conversation

@psiha

@psiha psiha commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

What

Adds the size of the files a system consists of to the result file, as a top-level installSize:

  • packagesMB and files of the entry's node_modules
  • nativeMB: each native library or addon of 1 MiB or more in them, by its path
  • programsMB: what is installed outside node_modules, such as a database server. An entry lists these in entry.json under programs (see the header of the script).

It counts files, not an exact installed size: a package folder such as RAMA_PATH counts only the files npm pack would ship, the PostgreSQL server counts its programs plus the lib and share folders that belong to them (found the way its db.mjs finds the programs, then on the PATH), a hard-linked file counts once, and a program that lies inside what is already counted is not listed twice.

node scripts/sizes-installed.mjs <entry> prints the same object as the run stores, or null where the run stores nothing. Sizes are bytes of file content, in MiB.

If the files cannot be read or entry.json is not valid, the run prints a warning, leaves installSize out and goes on.

Why

Nothing in the results says how big a system is. Package or binary size is one of the things people ask about when comparing engines.

Schema

Additive. A new top-level key, left out when nothing is found. The website reads only the fields it already used. entry.json gains an optional programs list. A result from an older runner has no installSize.

How it was checked

On a Linux box: a small script checks that hard links count once, a program inside node_modules or a repeated one is left out, and a malformed entry.json or an unreadable folder gives an error and not a partial result. duckdb-tables after npm install lists its packages and the two libduckdb.so, and a run with --tests L1 on the 10m dataset writes the same object into the result file. RAMA_PATH pointing at a package folder lists that package.

Not checked: postgres-tables with the server installed, clickhouse-tables, other platforms.

🤖 Generated with Claude Code

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request due to rate limiting. Please try again later. See Usage limits for GitHub Copilot for details.

Adds scripts/sizes-installed.mjs: the size of an entry's packages, the native libraries in them and the server programs installed elsewhere. The runner stores it as a top-level installSize in the result file. Additive: no existing field changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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.

2 participants