Skip to content

Publish reproducible performance results - #875

Merged
SaladDay merged 3 commits into
mainfrom
publish-reproducible-performance-results
Oct 25, 2026
Merged

SaladDay merged 3 commits into
mainfrom
publish-reproducible-performance-results

Conversation

@SaladDay

@SaladDay SaladDay commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator
  • scripts/benchmark.py drives hosted Sessions through the official OpenAI SDK, times E2B with its SDK, and prints the results table from the Session records and the Core log lines it keeps.
  • Performance (English and Chinese) describes each measurement, how the E2B comparison differs, the setup and how to reproduce it. The records are in docs/performance/; python3 scripts/benchmark.py report docs/performance prints the table again, and report docs/performance/cold the run that resumed from disk after the node's page cache was dropped.
  • The README shows the table beside E2B, each row linking to its method and records, and a Limits section: Docker as a compatibility backend, one writer per workspace, Linux-only workspace storage, and suspend slower than E2B's pause, with the wait a new Session sees on a full node.
  • Choose a sandbox backend listed E2B as not suspending idle sandboxes; E2B pauses them in place. It now names Docker the compatibility backend, and the workspace filesystem protocol states that an object keeps only its current contents.

Measured on 2026-10-25 on the mx test installation with the final script: Core at c5d4205, node and Runtime at 170a498, 10 samples of each phase; E2B with a 2 vCPU, 4 GiB template like the microsandbox sandboxes.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

scripts/benchmark.py drives hosted Sessions through the official SDK, times E2B with its SDK, and builds the table from the Session records and the Core log lines it keeps. docs/performance.md describes each measurement, the setup and how to reproduce it; the records it was built from are in docs/performance. The README shows the table beside E2B and the limits that apply.

The backend comparison listed E2B as not suspending idle sandboxes; E2B pauses them in place.
…resume

Measure every row with the final script, add the full-node and npm install rows and a run that resumes from disk, describe how the E2B comparison differs, and put the Docker and workspace limits in their owning docs.
…ecords

The E2B run now records each sandbox's CPUs and memory, and build-template.py takes --memory-mb so the 4 GiB comparison template can be built from the repository. report fails when a measurement has no samples or the Core log yields no lines, and a hygiene check compares the published tables with report's output. The docs state the run conditions, the full list of E2B differences and the suspension triggers by link.
@SaladDay
SaladDay merged commit abebcd1 into main Oct 25, 2026
25 checks passed
@SaladDay
SaladDay deleted the publish-reproducible-performance-results branch October 25, 2026 09:04
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.

1 participant