Couldn't load this page.

← Blog
Sandbox cold starts: E2B vs Daytona vs Modal vs LizardThis 12-second animation shows distributions and medians from 1,200 measured sandbox starts, with 300 per provider. Median time from the create call to the first command’s result was 228 ms for Lizard, 264 ms for E2B, 819 ms for Daytona and 929 ms for Modal.
Engineering

E2B vs Daytona vs Modal: 1,200 sandbox starts compared

Yura Oak

In our benchmark, E2B took 264 ms to create a sandbox and finish its first command. Daytona took 819 ms and Modal took 929 ms. Those are medians from 300 starts per provider on 12 October 2026. Lizard took 228 ms in the same test.

We sell Lizard Sandboxes. This is our benchmark, and the results reflect our runner and the settings below. We publish the raw measurements and test script so you can check them. We also cover where E2B, Daytona and Modal offer things Lizard does not.

E2B vs Daytona vs Modal: the results

Each row covers 300 starts from one runner in US East. We started the clock before the create call and stopped it when a Python command returned a known string. All 1,200 starts succeeded. We deleted each sandbox after its test.

ProviderMedianAveragep90p95p99Slowest
Lizard228 ms239 ms265 ms310 ms477 ms693 ms
E2B264 ms323 ms487 ms603 ms736 ms1,260 ms
Daytona819 ms945 ms1,370 ms1,671 ms2,332 ms5,532 ms
Modal929 ms983 ms1,290 ms1,422 ms1,593 ms1,932 ms

The median describes the middle of this sample. At p95, about 95% of the recorded starts finished within that time: 603 ms for E2B and 1,671 ms for Daytona. These percentiles describe our test; they do not predict how many slow starts your app will have each day.

The reported 95% confidence intervals for the medians are 225 to 230 ms for Lizard, 260 to 269 ms for E2B, 789 to 856 ms for Daytona and 914 to 940 ms for Modal. They describe uncertainty within this sample. Different regions, resources, dates or traffic could change the results.

What the create call measures

A create call can return before a sandbox can run code. The split between that call and the first command varies by provider:

ProviderMedian create callMedian first command after createMedian total
Lizard100 ms128 ms228 ms
E2B162 ms102 ms264 ms
Daytona728 ms82 ms819 ms
Modal45 ms883 ms929 ms

We calculate each median on its own, so the create and command medians do not have to add up to the median total. The command phase also includes the script's local logging overhead after create returns.

Modal returned from create in 45 ms, the lowest median in the test. Its next command took another 883 ms at the median. Daytona spent most of its time in create, then returned the first command in 82 ms.

For an agent waiting to run code, the total matters. A create-only test would put Modal first; this test put it last. Neither number alone measures how fast code runs once the sandbox is ready.

E2B vs Daytona

The median wait was 264 ms on E2B and 819 ms on Daytona, about three times as long. Daytona also had longer slow starts. Its p99 was 2,332 ms and its maximum was 5,532 ms, compared with E2B's 736 ms and 1,260 ms.

Daytona's first command took 82 ms at the median once create returned, the shortest command time here. That does not make it the fastest to reach a result: its create call took 728 ms.

E2B and Daytona list the same CPU and memory rates: $0.0504 per vCPU-hour and $0.0162 per GiB-hour, billed by the second. Their default sizes differ. Daytona starts with 1 vCPU, 1 GiB of memory and 3 GiB of disk. E2B's base-template docs list 2 vCPU and 512 MiB, while its pricing page labels 2 vCPU and 4 GiB as the default. Check the template you plan to use before you estimate its cost. See E2B pricing and Daytona pricing.

E2B uses Firecracker microVMs, each with its own kernel. Daytona uses Linux containers by default and also offers Linux VM and Windows sandboxes. E2B publishes its code under Apache-2.0. Daytona moved core development to a private codebase in June 2026 and archived its public repository. That makes E2B the option to examine if you need to inspect or self-host the current sandbox code. Our E2B sandbox guide covers its plans and limits.

Daytona advertises creation from code to execution in under 90 ms. Our create-call median was 728 ms. We measured through its public API from an outside client; the published figure may use a different path or setup. These results do not establish why the numbers differ.

Daytona vs Modal

Daytona had the lower median, at 819 ms against Modal's 929 ms. Modal had shorter slow starts: its p99 was 1,593 ms and its maximum was 1,932 ms, against Daytona's 2,332 ms and 5,532 ms.

Modal supports gVisor containers and VMs with their own kernel. It made VM Sandboxes generally available on 1 October 2026. We left the runtime choice to Modal, so this test does not compare the two runtimes. See the Modal Sandboxes guide and VM Sandboxes announcement.

Modal's own benchmark reports a median below half a second from create request to readiness for user code. Our test took 929 ms through the first command's output. We used region="us-east"; our test does not show whether that choice affected start time. Modal charges 1.75 times its base rate for that region setting and limits placement to that region. Its region guide explains the options.

Daytona charges $0.0504 per vCPU-hour. Modal sandbox pricing starts at $0.1419 per physical core-hour, with one physical core equal to two vCPUs. Modal's default request is 0.125 CPU cores and 128 MiB of memory. It bills the higher of the resources requested and used. Compare equivalent sizes, memory charges and region fees before choosing on price.

E2B vs Modal

E2B returned the first result sooner: 264 ms at the median, compared with 929 ms on Modal. Modal took about 3.5 times as long. At p99, E2B took 736 ms and Modal took 1,593 ms.

E2B says loading a sandbox from a snapshot takes about 80 to 150 ms. We measured a 162 ms median create call through its public API. Those timings cover different work, so our result does not verify its snapshot-load claim. The template docs describe that process.

If you are comparing Modal and Daytona as E2B alternatives, both offer GPU sandboxes. Modal also offers region choice across the US, Europe and Asia-Pacific. Its Starter plan has no monthly fee and includes $30 of compute each month. E2B's Hobby plan includes a one-time $100 credit; Pro costs $150 a month plus usage. E2B's faster start in this test will not settle the choice if your workload needs a GPU. See Modal pricing and E2B billing and limits.

Lizard's results across five runs

Lizard had the lowest result in each column of the main test. Its slowest start took 693 ms, below E2B's p99 of 736 ms. Lizard Sandboxes use Firecracker microVMs with separate kernels and start from a prepared pool.

We ran the test five times between 8 and 12 October, on three dates. The main results above come from the first run on 12 October:

RunLizardE2BDaytonaModal
8 Oct 2026302 ms261 ms884 ms898 ms
10 Oct 2026, run 1238 ms270 ms796 ms865 ms
10 Oct 2026, run 2229 ms275 ms785 ms869 ms
12 Oct 2026, run 1228 ms264 ms819 ms929 ms
12 Oct 2026, run 2233 ms263 ms793 ms918 ms

E2B was faster than Lizard on 8 October. By 10 October, Lizard's median create call had fallen from 210 ms to 104 ms, and Lizard had the lowest total median in the four later runs. Daytona's median stayed below Modal's in all five. These runs show how the results varied during that period; they do not establish long-term performance.

When to choose E2B, Daytona or Modal

Some requirements matter more than the start-time gap. E2B, Daytona and Modal each cover uses that Lizard does not.

RequirementProvider to considerWhat to check
Open source or self-hostingE2BIts sandbox code is Apache-2.0. Daytona's current core is private; Lizard and Modal do not publish their platform code.
Many new sandboxes per minuteE2B, Daytona or ModalCompare creation rates and concurrent sandbox limits separately. The figures below use entry plans.
GPUsModal or DaytonaBoth offer GPU sandboxes. Lizard does not.
More regionsModalLizard runs Sandboxes in US East and EU West. Check where each provider offers the resources you need.
Windows, your own compute or no maximum run timeDaytonaCheck its Windows sandboxes and custom regions.
Custom imagesE2B, Daytona or ModalLizard has a fixed template catalog, including base, interpreter and claude. You can snapshot an existing sandbox, but cannot upload your own image through a public feature.
Compliance reportsE2BE2B states that it has a SOC 2 Type II report and supports HIPAA compliance. Check the report and terms for your use.

Lizard Pro allows 100 running sandboxes, 24 new starts per minute and 400 per day. Higher limits require Enterprise. E2B Hobby allows one new sandbox per second and 20 at once. Daytona's first tier allows 300 creations per minute. Modal Starter allows 100 concurrent containers; that is a concurrency limit, not a creation rate. Check Lizard's limits, E2B's limits and Daytona's limits for the plans you expect to use.

How we measured

The runner was one container on Railway in US East (us-east4). It called E2B, Daytona and Modal through their official SDKs and Lizard through its REST API.

For each round, the script shuffled provider order and launched one sandbox per provider in parallel. Each provider had at most one sandbox in flight. We discarded three warm-up rounds, then recorded 300 rounds.

The timer started before create. It stopped when python3 -c "print('arena-startup-ready-20261001')" returned that string with exit code 0. We deleted the sandbox after the measurement. The script did not retry failures; all starts succeeded.

ProviderTemplateRegion settingResourcesPython
Lizardbase, size Smallus-east-12 vCPU / 4 GB3.11
E2Bdefault code interpreter templatedefaultdefault3.13
Daytonadefault snapshot daytonaio/sandbox:0.8.0us1 vCPU / 1 GiB3.14
Modaldebian_slim, Python 3.12us-east2 physical CPU cores, equivalent to 4 vCPU / 2 GiB3.12

We used e2b-code-interpreter 2.8.1, e2b 2.34.0, daytona 0.200.0 and modal 1.5.2. The region settings differ; we did not pin every provider to the same region. The templates, resources and Python versions also differ. The script sets Modal to cpu=(2, 2). Modal counts physical cores, with one core equal to two vCPUs, so that request is equivalent to 4 vCPU. See its sandbox resource guide.

This test measures how soon these prepared sandboxes returned a first result. It does not measure bulk creation, custom-image builds, other regions, CPU performance or cost. A provider can prepare capacity before a create call, so the term "cold start" here does not mean a fresh machine boot with no cache or prepared pool.

Download all 1,200 measurements as CSV, the summary statistics as JSON and the benchmark script.

Before you run the script, install its httpx, E2B, Daytona and Modal dependencies, set the provider credentials and LIZARD_PROJECT_ID, and configure Modal authentication. Review its paths and process handling: it expects /app/results, writes raw.jsonl rather than the published CSV and summary files, and keeps an HTTP status server running after the tests. Adapt those parts to your runner.

Which sandbox is best for AI agents?

For an agent that starts a new sandbox while a user waits, E2B and Lizard had the shortest waits in this test: 264 ms and 228 ms at the median. E2B also publishes its sandbox code, which matters if you need self-hosting or a code audit.

Modal and Daytona support GPU tasks. Daytona also offers Windows and sandboxes on your own compute. If the sandbox will run for hours, compare its running cost and limits as well as the time it takes to start.

What a running sandbox costs per hour

The table estimates a 2 vCPU / 4 GiB sandbox at the rates published on 12 October 2026. This is a cost comparison at one size; it does not price the different settings in our start-time test. All four bill running resources by the second. These are compute prices, before any extra storage, network or plan charges.

ProviderPrice per running hourPlan feeIncluded or trial usage
Lizard$0.0162Pro: $19 a month, including $19 of usage7-day trial with $5 of usage; card required
E2B$0.1656Hobby: $0; Pro: $150 a monthOne-time $100 credit on Hobby
Daytona$0.1656None$200 in free compute
ModalAbout $0.238Starter: $0; Team: $250 a month$30 a month on Starter

For E2B and Daytona, the calculation is 2 × $0.0504 per vCPU-hour + 4 × $0.0162 per GiB-hour. For Modal, it is one physical core, equal to two vCPUs, at $0.1419 per hour + 4 × $0.0240 per GiB-hour. Modal's total excludes its 1.15x or 1.75x region charge. Lizard charges a flat rate for a Small sandbox.

Unused Lizard Pro usage does not carry over. Extra usage is pay as you go.

Storage and network charges can change the bill. Our Vercel Sandbox pricing guide shows how to work through a monthly sandbox bill. For these providers, check the linked pricing pages before budgeting.

Time a Lizard sandbox start

Install Lizard SDK, set LIZARD_API_KEY, and replace the project ID with your own. This example times one start through the Python SDK; the benchmark above used Lizard's REST API.

import time
from lizard import Sandbox

start = time.perf_counter()
sandbox = Sandbox.create("base", project_id="proj_123", size="small", region="us-east-1", timeout_ms=300_000)
try:
    result = sandbox.process.exec_("python3 -c \"print('ready')\"")
    print(result.stdout.strip(), f"{(time.perf_counter() - start) * 1000:.0f} ms")
finally:
    sandbox.kill()

A Small sandbox costs $0.0162 per running hour, billed by the second. See the Sandboxes page for prices and the Sandboxes docs for templates and limits.

FAQ

Which sandbox is best for AI agents? E2B and Lizard returned the first command fastest in our 1,200-start test, at medians of 264 ms and 228 ms. E2B is also an option for open source and self-hosting. Modal and Daytona support GPUs. Daytona also offers Windows sandboxes and custom regions on your own compute. Choose for the agent's workload and test your own settings.

What is a sandbox cold start? In this benchmark, it is the time from requesting a new sandbox until its first command returns. That includes API and network time, and may use capacity the provider has already prepared. A create call alone can end before the sandbox is ready to run code.

Is the Daytona sandbox free? Daytona offers $200 in free compute without a credit card. After that, it charges for reserved resources by the second. Check Daytona pricing for the current offer and rates.

Is Daytona open source? Daytona moved core development to a private codebase in June 2026 and archived the public repository. The last public code remains under AGPL-3.0, and its SDKs remain Apache-2.0. The repository notice explains the change.

How much does the Daytona sandbox cost? Daytona sandbox pricing is $0.0504 per vCPU-hour and $0.0162 per GiB-hour of memory, billed by the second. A default 1 vCPU / 1 GiB sandbox costs $0.0666 per running hour, about $0.067. Storage beyond the first 5 GiB costs $0.000108 per GiB-hour.

What is a Modal sandbox? A Modal sandbox runs untrusted user or agent code in a separate environment on Modal. Modal supports gVisor containers and, since October 2026, VMs with their own kernel. Its Sandboxes guide covers how to create and use them.

Is Modal free to use? Modal Starter has no monthly fee and includes $30 of compute each month, including Sandbox usage. Usage above that allowance costs extra, with per-second billing. See Modal pricing.

Is E2B safe? E2B runs each sandbox in a Firecracker microVM with its own kernel to isolate it from other sandboxes and the host. E2B states that it has a SOC 2 Type II report. Sandboxes allow outbound internet access by default, so restrict access for code that should not reach the network. See E2B's security documentation.

Sources

Prices and limits checked on 12 October 2026.

Build with AI. Ship with Lizard.

You don't need a platform team to go live. Your whole cloud, one CLI command away.

Try for free
Services
—
Add-ons
—
Deployments
—
Sandbox starts
—

We use cookies for essential site functionality and analytics. See our Cookie Policy.