Not Hacker News Logo

Not

Hacker

News!

Home
Hiring
Products
Companies
Discussion
Q&A
Users
Not Hacker News Logo

Not

Hacker

News!

AI-observed conversations & context

Daily AI-observed summaries, trends, and audience signals pulled from Hacker News so you can see the conversation before it hits your feed.

LiveBeta

Explore

  • Home
  • Hiring
  • Products
  • Companies
  • Discussion
  • Q&A

Resources

  • Visit Hacker News
  • HN API
  • Modal cronjobs
  • Meta Llama

Briefings

Inbox recaps on the loudest debates & under-the-radar launches.

Connect

© 2025 Not Hacker News! — independent Hacker News companion.

Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.

Not Hacker News Logo

Not

Hacker

News!

Home
Hiring
Products
Companies
Discussion
Q&A
Users
  1. Home
  2. /Discussion
  3. /Unpacking Cloudflare Workers CPU Performance Benchmarks
  1. Home
  2. /Discussion
  3. /Unpacking Cloudflare Workers CPU Performance Benchmarks
Last activity about 1 month agoPosted Oct 14, 2025 at 4:17 PM EDT

Unpacking Cloudflare Workers CPU Performance Benchmarks

makepanic
317 points
76 comments

Mood

supportive

Sentiment

positive

Category

other

Key topics

Cloudflare
Vercel
Performance Optimization
Edge Computing
Debate intensity40/100

Cloudflare publishes a detailed analysis of their Workers CPU performance benchmarks, sparking a discussion on performance optimization and the competitive landscape between Cloudflare and Vercel.

Snapshot generated from the HN discussion

Discussion Activity

Very active discussion

First comment

48m

Peak period

71

Day 1

Avg / period

19

Comment distribution76 data points
Loading chart...

Based on 76 loaded comments

Key moments

  1. 01Story posted

    Oct 14, 2025 at 4:17 PM EDT

    about 1 month ago

    Step 01
  2. 02First comment

    Oct 14, 2025 at 5:05 PM EDT

    48m after posting

    Step 02
  3. 03Peak activity

    71 comments in Day 1

    Hottest window of the conversation

    Step 03
  4. 04Latest activity

    Oct 19, 2025 at 2:41 PM EDT

    about 1 month ago

    Step 04

Generating AI Summary...

Analyzing up to 500 comments to identify key contributors and discussion patterns

Discussion (76 comments)
Showing 76 comments
PranaFlux
about 1 month ago
1 reply
Grab the popcorn, the Vercel v Cloudflare drama unfolds
horseradish7k
about 1 month ago
competition is how customers get better products
nisten
about 1 month ago
3 replies
nextjs being 4 times slower latency wise than plain react or even vanilla js is pretty funny
kentonv
about 1 month ago
1 reply
The benchmark cases are not comparable to each other. Each does totally different work. They are only meant to compare hosting providers.
kentonv
about 1 month ago
Correction: The author of the SvelteKit benchmark says it is designed to do the same work as the Next.js one: https://x.com/bmdavis419/status/1978242304432325041

But the "vanilla" benchmark generates some 3x as much HTML and the react one generates half, so they aren't comparable.

auxiliarymoose
about 1 month ago
Keep in mind that Theo said the Vanilla benchmark was running too fast so he made it "way way slower" so 4x is not representative of a direct comparison

https://youtube.com/clip/UgkxvcydgHKf-76rZasr0ykMZZol57apKp9...

zeroq
about 1 month ago
nextjs is spring of the web, it optimizes productivity rather than app speed.

and whether you are more productive with it or not is completely up to you.

orliesaurus
about 1 month ago
2 replies
cf has to hire people with obsession not benchwarmers that only activate when someone yells at them because of a twitter argument. there i said it.

vercel only exists because cf got lazy. huge fan of CF, and if cloudflare had the attention to details that vercel has, there would be no vercel. fullstop.

CFs docs, repos, video content but also code samples, sdks (lol all the mcp stuff) usually is subpar to vercel's.

its really annoying that nextjs has to be forked and/or patched to work on cloudflare.

weird-eye-issue
about 1 month ago
2 replies
CF isn't lazy at all. Their docs often aren't that great but it's because they seem to be prioritizing launching new products and features
nmfisher
about 1 month ago
2 replies
Overall I'm quite positive towards core Cloudflare products like Tunnels, Workers, R2, KV etc, but a lot of newer products are often either thoroughly broken (e.g. Cloudflare AI) or unusable due to insufficient documentation (e.g. Email Routing).

After being burned a few times, I think I'm going to ignore any new Cloudflare product for 12 months after stable release. If their products worked as advertised, I'd be willing to pay considerably more. I think their commitment to the free tier is hamstringing them a little bit.

orliesaurus
about 1 month ago
I also got burned and yes I also feel this way about it, i.e. AutoRAG has huge issues too, not to mention the whole MCP/Agents suite of SDKs...
weird-eye-issue
about 1 month ago
Yeah I just use Workers and Durable Objects. Stuff like Queues built on DO is better to just use DO
kordlessagain
about 1 month ago
Right. Cloudflare is an authorized man in the middle attack.
jokethrowaway
about 1 month ago
CF has strong tech core but some products are unusable.

You can see CF Pages had barely zero resources and the product got worse over time.

Lots of issues shipping examples from mainstream frameworks that work flawlessly on vercel, netlify or github pages. Now they removed support for something and I can't ship half of my "legacy apps". I ship everything on Kubernetes and just cache it with free cloudflare.

It can also be a strategy: they don't care about freeloaders devs shipping another app, they want the enterprise business.

pyrolistical
about 1 month ago
3 replies
This is why we need competition and independent benchmarks.

This shames poor performing product/service into action.

alhirzel
about 1 month ago
Only if they care...
aiisthefiture
about 1 month ago
We already have independent benchmarks.
sema4hacker
about 1 month ago
Yes, competition is good and mergers and acquisitions are bad. It also shows why you always have to internally be comparing yourself to the competition and not be complacent, before someone independently does the comparison for you and you're embarrassingly caught with your pants down.
hu3
about 1 month ago
2 replies
My take from this article is that SvelteKit is crazy fast and Next.js is a snail
FlyingSnake
about 1 month ago
2 replies
I hope a pragmatic framework like SvelteKit, Astro or TanStack replace NextJS complexity vendors soon.
mb2100
about 1 month ago
Indeed. Would you consider https://mastrojs.github.io a "pragmatic framework"?
rk06
about 1 month ago
React router is ... an option. but tanstack is a the most promising one to change the status quo.

With the rolldown update coming with vite 8, It is just a matter of time before next. js is forced to fix its issues

eastdakota
about 1 month ago
That definitely is one not-wrong conclusion.
zeroq
about 1 month ago
2 replies
This is great PR. Well done to whoever orchestrated that post.
kentonv
about 1 month ago
1 reply
Thanks! This was 100% produced and orchestrated by engineers on the Workers team (including me).
zeroq
about 1 month ago
1 reply
Well, that only speaks better of higher ups who (a) offered you a space to that and (b) didn't micro managed you into something, like vercels hate piece.

Again, well played, nice fix, nice writeup.

eastdakota
about 1 month ago
1 reply
Blog run by the engineering team. I wouldn’t even know how to veto a post if I wanted to. Not in our DNA.
Waterluvian
about 1 month ago
Is there any secret beyond what I’m guessing is “hire the right people and then trust them”?
mpeg
about 1 month ago
To give a take from a happy cf customer – not only do they have a great engineering culture when it comes to writing blog posts and OSS but also the best customer service of any infra company I've ever used.

The team, including kenton who wrote this post, are often available on discord to provide help and take in feedback about cf products, if you find a bug or have a problem you can often be talking directly to the engineer who looks after that product. I've made PRs and feature suggestions on cloudflare products that got accepted without much hassle / protocol

Don't mean to put down others, but I receive better support from cf on an extremely small monthly bill (the free tier is too good) than I have got from a certain massive company's account managers on six figures a month bills.

l5870uoo9y
about 1 month ago
2 replies
I am in the process of porting my web app[1] from NextJS hosted at Vercel to Astro/React hosted at Cloudflare, and something that particularly surprises me is that I can render a web app on every request at “the edge” and have response times of 100-200ms. That is almost as fast as fully static pages.

I have also definitely noticed an improvement in Cloudflare Worker over the last few weeks; cold starts have practically disappeared, and they are significantly more stable in terms of response times.

[1]: https://app.sqlai.ai/

steelbrain
about 1 month ago
1 reply
Hello! How are you collecting your edge workload to the database? Are you using cloudflare’s database?

I’ve wanted to try out this edge hosting thing but because of the amount of round trips involved between the application and the database, the application performs worse on the edge.

Thanks!

l5870uoo9y
about 1 month ago
2 replies
The database is hosted on Railway. I have enabled Smart Placement that should, depending on request time, automatically use an endpoint closer to the database to speed it up. When requesting a route that includes a database request, the response time on the US east coast is around 200ms and closer to 1000ms in Denmark. I am hoping that the Smart Placement will work better when I go live with the app (still in beta) and that it mainly needs more traffic to calculate optimal endpoint placement.
pjc50
about 1 month ago
1 reply
So a remote, authenticated DB connection over the internet? How many db queries per page generation does that generally work out as?
l5870uoo9y
about 1 month ago
My app isn't database heavy; most pages renders without a single database call (user information stored in cookie) and the pages that do call the database contain maximum one call. Other data, like database schemas and subscription status, are requested in the background directly from the browser so it doesn't stall page rendering.
lukecarr
about 1 month ago
1 reply
Have you given Hyperdrive[0] a try? In theory, it should improve performance in your use case where you have a central database (Railway) being connected to from the Edge (your Workers).

It moves the DB connection logic closer to your Workers, pools connections, and can also cache queries.

(Disclaimer: I work for Cloudflare, but on an unrelated team. Not personally used Hyperdrive, but heard good things!)

[0]: https://developers.cloudflare.com/hyperdrive/

l5870uoo9y
about 1 month ago
It actually looks very interesting, but my app is not particularly affected by database query time, but rather by the time spent on the various AI generations.
misiek08
about 1 month ago
C'mon - static pages are like 10ms or less. 200ms is already noticeable, not-instant for humans. We have 5-10x faster hardware and 10x slower websites ;)
aperture147
about 1 month ago
5 replies
It’s good that CF is actually trying to improve its platform instead of blaming others for smearing its product. Still, the breakneck pace is a mixed blessing. Things change so fast it’s hard to keep up, and launches often outrun polish. The R2 Data Catalog still lacks Iceberg v3 support; Wrangler has shifted dramatically in just a few months; and Pages seems to be on the way out, leaving me with Workers Assets that are painful to migrate. Configs that worked in Wrangler 3 didn’t carry over cleanly to Wrangler 4, and it feels like Wrangler 5 will introduce yet another interaction model.
itake
about 1 month ago
3 replies
Where do you see that "pages seems to be on the way out"? I use pages for a few projects...
aperture147
about 1 month ago
1 reply
CF used to encouraged people to move to Workers instead of using Pages. They recently removed the message in their landing page that said so (just checked, you could visit Wayback Machine to verify), so I guess Pages will still be available anyway. Btw the best thing that Pages gives out is allowing people to use different domain from another domain registry when Workers force user move their domain to CF.
pjc50
about 1 month ago
1 reply
Workers require you to use CF as a domain registry? Where is that written and what possible reason do they give for it? That's quite an imposition.
rajeevk
about 1 month ago
1 reply
Not the domain registry but CF wants to manage the DNS to make it work. If you do not want them to manage your DNS and want to work by simply pointing your CNAME, they ask you start with their business plan ($250 / per month)
pjc50
about 1 month ago
1 reply
Right, but that's not the same thing and is intrinsic to how CF works - routing DNS requests from different areas to different IPs. Is there any good reason not to just let them serve your DNS if they're serving your website?

(will they accept a delegated subdomain?)

jonathanlydall
about 1 month ago
They don't accept delegated subdomains, at least not for .net and .com domains (I haven't tried others).

I don't see how it's "intrinsic to how CF works" that they need to host your DNS records, especially when they don't require it on more expensive plans.

That being said, I don't mind them hosting my DNS records, but it would have been nice if they supported importing zone files from Azure DNS.

csomar
about 1 month ago
2 replies
I didn't find it hard to migrate. Pages are workers, so might as well just use a worker.
kelvinjps10
about 1 month ago
2 replies
It's hard if you don't use a JavaScript based SSG, well I didn't find how to do it with Hugo so I'll stay in cloudfare pages
brycewray
about 1 month ago
https://gohugo.io/host-and-deploy/host-on-cloudflare/

https://discourse.gohugo.io/t/hugo-support-in-cloudflare-wor...

https://discourse.gohugo.io/t/hosting-a-hugo-site-on-a-cloud...

csomar
about 1 month ago
Generate the files locally and then push them to the worker? Even with a JS based SSG that's the only way to do it and the difference between worker and pages. (workers have no build step)
__jonas
about 1 month ago
1 reply
Just to note because I was confused by this:

I was under the impression that workers are just lambda functions, and therefore would fall under different billing rules than pages which serve static files (with unlimited bandwidth).

But workers apparently have a 'Static Assets' feature that just serves static assets (like pages) and comes with free unlimited requests, unlike worker function invocations, so as you say it seems to be essentially the same as pages.

https://developers.cloudflare.com/workers/static-assets/

csomar
about 1 month ago
What I meant the same as worker, is that under the hood, pages are just workers. The Static Assets feature was probably added because the by-request billing wouldn't make any sense for static assets.
sofixa
about 1 month ago
The migration guide contains this:

> Workers will receive the focus of Cloudflare's development efforts going forwards, so we therefore are recommending using Cloudflare Workers over Cloudflare Pages for any new projects

https://developers.cloudflare.com/workers/static-assets/migr...

TiredOfLife
about 1 month ago
3 replies
Fun thing is that this started because somebody claimed that Cloudflare is faster than Vercel. Then somebody who knows what they are doing did benchmarks that showed the opposite. And then worked with Cloudflare to make it faster
refulgentis
about 1 month ago
Theo knowing what he’s doing died for me when he did a dive into this fancy new data format OpenAI started using to stream responses from the server and how wasteful it is (SSE) (and this was in 2025)

I don’t except everyone to know everything but it made me very careful about differentiating Theo-the-engineer from Theo-the-social-media-dude.

aperture147
about 1 month ago
They might flip the emergency switch that burns a little more money to improve the cold start, schedule more CPUs to each V8 process or remove the `sleep(100)` somewhere in the code. I kinda doubt that they have actually made any code improvement but just a marketing stunt that make everything seems to be faster for a month then everything will be just as slow as it is, or they are buying time to actually improve the code.
NicoJuicy
about 1 month ago
And nobody on the benchmarks mentioned that Vercel runs it on 2 gb. Instances ( and much more expensive) while Cloudflare is competitive with 128 mb. instances.

I guess that's the difference between building on top of AWS and actually building your own infrastructure.

troyvit
about 1 month ago
1 reply
> and Pages seems to be on the way out, leaving me with Workers Assets that are painful to migrate.

According to this community post CF isn't going to deprecate pages until workers achieve parity: https://community.cloudflare.com/t/static-web-site-in-worker...

That said I can't actually find a place where CF says pages are deprecated. pages.cloudflare.com seems all-in on it, as does developer.cloudflare.com/pages. I see a reddit post where somebody implies they're deprecating pages, but the page they link to [1] doesn't mention anything about pages going away.

That doesn't take away from the rest of what you're saying, it's just the part that made my heart skip a beat.

[1] https://www.reddit.com/r/webdev/comments/1mme85y/cloudflare_...

kentonv
about 1 month ago
It's not deprecated. There's confusion because the implementation is changing to be better-integrated with Workers, and currently it's manual migration to get the new implementation, but eventually it'll be automatic. It'll still be called "Pages" when that happens.
kentonv
about 1 month ago
> Configs that worked in Wrangler 3 didn’t carry over cleanly to Wrangler 4, and it feels like Wrangler 5 will introduce yet another interaction model.

There were no changes to the config format in Wrangler 4. The reasons for the major version bump didn't affect 99.99% of users. They are listed here:

https://developers.cloudflare.com/workers/wrangler/migration...

Personally I pushed back on bumping the major version at all, because I know even a no-op major version update creates pain. But the team wasn't comfortable given the obscure edge cases. We have resolved, though, that in the future we'll build ways to manage all these issues without requiring a major version bump (e.g. support multiple versions of esbuild, so that you can upgrade wrangler without updating esbuild).

Incidentally, on the runtime side especially, we're pretty maniacal about backwards compatibility: https://blog.cloudflare.com/backwards-compatibility-in-cloud...

> Pages seems to be on the way out, leaving me with Workers Assets that are painful to migrate.

Pages are not "on the way out". Workers Assets are just a new, more flexible implementation of Pages, which makes it easier to use other Workers features together with Pages. If you don't need those other features, you do not need to migrate. Eventually, we will get to the point where we can auto-migrate everybody, we just aren't there yet.

yomismoaqui
about 1 month ago
Reminder to use boring tech when building something important that should last for some years.
jrpelkonen
about 1 month ago
1 reply
Great write up, focusing on facts without fingerpointing.

But I must admit I was somewhat surprised Cloudflare was not already proactively monitoring and tuning the generation sizes. Configuring the generation sizes was table stakes for JVM performance tuning back in the day.

ErikCorry
about 1 month ago
2 replies
We choose to be transparent when we fix stuff, even if it makes us look a bit silly :-) . We are certainly installing more logging and tracking of this sort of thing!

In general I think the GC should auto-adapt as much as possible. It's a bit of an admission of defeat for the GC author if the users have to spend a lot of time tuning the parameters. What we are doing here is removing the tuning that was no longer correct, and allowing V8 more latitude to pick its own young gen size.

jrpelkonen
about 1 month ago
I appreciate the candor, and I agree that auto-adaptation probably makes sense in this use case because the workloads are unknown and varied.
noir_lord
about 1 month ago
Not silly at all - with such a massive surface even specialists on a part of it don't see all of their part all of the time :).

Any dev who's been around a while has been bitten by many assumptions or straight blindspots many times.

"Huh..that's weird" has been the entry point to some truly astounding ones over the years for me at least.

era37
about 1 month ago
1 reply
It's pretty crazy how some video by a relatively small content creator snowballed into Cloudflare making meaningful changes and addressing platform issues
NicoJuicy
about 1 month ago
And in just under 5 days, that's insanely fast
skeptrune
about 1 month ago
I loved this! Good writeup and very mature response to lots of criticism they took online prior.
syrusakbary
about 1 month ago
I really appreciated that the tone of the article is about what can be improved, rather than dunking on the competition.

That's what everything is about!

PS: It's awesome to see improvements on the OpenNext implementation, that other providers can also reuse

cendyne
about 1 month ago
Absolute adoration for how this was published, broken down, and discussed. It really improves my trust in the workers team at Cloudflare.
kordlessagain
about 1 month ago
I'm sick of seeing Cloudflare marketing on here.
boarush
about 1 month ago
Reading this really makes me wonder how does Chrome actually optimize for the plethora of devices running v8 (under Chrome). Definitely involves tricky decisions to be taken for great performance.
bradleyg_
about 1 month ago
Well played Cloudflare.
graycat
about 1 month ago
For garbage collection and the idea of assigning storage requests to different categories of (dynamic) storage ....

Apparently part of the algorithm is based on the size of the storage being requested.

Hmm. So, we have historical data of storage requests and for each (i) the size of the request, (ii) how long until the storage is freed, (iii) etc. ....

Guessing about a bizarre case: It might be that on Monday many storage requests of certain small sizes have lifetime just a little longer than the decision to move the request to another category, i.e., the moving effort was inefficient, wasted.

So, in simple terms, for an optimization, for each of the variables have both in the history and real time, make the variable values discrete, altogether may have for some positive integer n a few thousand different n-tuples of variable values; then for each n-tuple pick the best decisions (policies, etc.). Uh, unless this idea has already been tried.

youngtaff
about 1 month ago
Nice bit of subtle shade here:

> we chose instead to run our test client directly in AWS's us-east-1 datacenter, invoking Vercel instances running in its iad1 region (which we understand to be in the same building).

blackhaj7
about 1 month ago
Kenton is a class act
synunlimited
about 1 month ago
Speaking of `JSON` functions that can have drastic performance differences, V8 blog[0] recently had a post about improving `JSON.stringify` performance when you don't pass a `replacer` function. Some of the most used functions with performance pitfalls that are easy to trip into.

0: https://v8.dev/blog/json-stringify

Havoc
about 1 month ago
Good job on taking the L gracefully and doing something constructive about it
View full discussion on Hacker News
ID: 45584281Type: storyLast synced: 11/20/2025, 8:42:02 PM

Want the full context?

Jump to the original sources

Read the primary article or dive into the live Hacker News thread when you're ready.

Read ArticleView on HN
Not Hacker News Logo

Not

Hacker

News!

AI-observed conversations & context

Daily AI-observed summaries, trends, and audience signals pulled from Hacker News so you can see the conversation before it hits your feed.

LiveBeta

Explore

  • Home
  • Hiring
  • Products
  • Companies
  • Discussion
  • Q&A

Resources

  • Visit Hacker News
  • HN API
  • Modal cronjobs
  • Meta Llama

Briefings

Inbox recaps on the loudest debates & under-the-radar launches.

Connect

© 2025 Not Hacker News! — independent Hacker News companion.

Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.