Skip to content
DevMeme
6641 of 7435
Cloudflare vs Vercel CPU Benchmark Comparison Chart
Cloud Post #7276, on Oct 14, 2025 in TG

Cloudflare vs Vercel CPU Benchmark Comparison Chart

Why is this Cloud meme funny?

Level 1: Racing to Be the Fastest

Imagine two friends, Alice and Bob, who love to race each other in different games. One day, they decide to compete in five challenges: a big puzzle, a medium puzzle, a small puzzle, a math quiz, and a simple task like tying shoelaces. Bob (that’s like Vercel) was super quick in all the challenges, finishing each one much faster than Alice. Alice (that’s like Cloudflare) was very slow, especially on the big puzzle – it took her nearly two seconds while Bob finished in half the time! Everyone teased Alice for being so slow. Alice felt bad and said, “Give me a few days, I’ll train and come back stronger.” She practiced really hard for five days.

When they raced again, wow – Alice was much faster! For the big puzzle (like Next.js), she cut her time by more than half. She still wasn’t as fast as Bob on that one, but she got a lot closer. On the medium puzzle (React SSR), Alice almost caught up to Bob – just a tiny bit slower. And on the small puzzle (SvelteKit)? Alice actually beat Bob, finishing quicker than him! In the math quiz challenge (Math), Alice also zoomed ahead of Bob. Even on the easy task (Vanilla JS tying shoelaces), Alice was now faster. Bob was surprised – he didn’t expect Alice to improve so much so quickly.

It’s funny because it’s like Alice and Bob keep pushing each other to be better. One week Bob’s the fastest, then Alice trains and suddenly she’s winning some races. This competition makes it exciting to watch – like an ongoing game where each one doesn’t want to be left behind. In the end, both get faster and everyone cheers because the race keeps getting more interesting. This is similar to how two big computer services (Cloudflare and Vercel) made their code run faster: when one was teased for being slow, they worked hard and came back much quicker, which is great for everyone who uses them. It shows that a little competition can help people (and computers!) get a lot better.

Level 2: Framework Face-Off at the Edge

Let’s break down what’s going on in this “Cloudflare vs Vercel CPU Benchmarks” chart. It’s basically comparing how fast two cloud services can run the same JavaScript code. Cloudflare and Vercel are both companies that let developers deploy code to run on the edge (meaning on servers all around the world, close to users). This is part of the ServerlessArchitecture trend – you don’t manage servers yourself; instead, you write functions and upload them, and the cloud runs them on-demand globally. The big promise of edge computing is low latency (short wait times) because if a user in London makes a request, it’s handled by a server in London, not, say, halfway around the world. But how fast the code itself runs (the CPU time it takes) is also crucial. The meme’s subtitle “Lower is Better” on the latency axis highlights that we’re measuring execution time in milliseconds – lower numbers mean faster performance.

The chart lists five different workloads (types of tasks) on the X-axis: Next.js, React SSR, SvelteKit, Math, and Vanilla JS. These represent different frameworks or types of code:

  • Next.js: A popular React-based web framework, often used for building websites that do server-side rendering (SSR). It’s known for convenience and features, but it can be heavy since it loads the whole React framework on the server for each page render.
  • React SSR: This is basically using React for server-side rendering outside of Next.js. It still involves rendering a React app on the server so the user can get an already-made HTML page.
  • SvelteKit: A web framework for Svelte (a front-end framework). Svelte is more lightweight because it compiles components to efficient JavaScript. SvelteKit doing SSR tends to require less JavaScript code at runtime compared to React, so it’s generally faster or uses less CPU.
  • Math: A custom workload that likely involves heavy mathematical calculations in JavaScript (lots of number crunching, loops, maybe computing primes or Fibonacci numbers). It’s a way to test pure CPU performance.
  • Vanilla JS: “Vanilla JavaScript” means plain JavaScript with no frameworks. It might be a simple script doing something minimal. This serves as a baseline to measure the platform’s overhead — basically, how fast can it run a trivial piece of code.

For each of these workloads, there are three bars:

  • Cloudflare – Before (grey bar): Cloudflare’s timing before some recent performance fixes.
  • Cloudflare – Now (orange bar): Cloudflare’s timing after they made improvements.
  • Vercel (black bar): Vercel’s timing (presumably at the same point in time as “Now”).

The numbers on top of the bars are the latency in milliseconds. Let’s interpret one row as an example: for Next.js, Cloudflare’s “Before” was 1895 ms (nearly 1.9 seconds), Cloudflare “Now” is 829 ms, and Vercel is 614 ms. “Lower is better” means:

  • Originally, Cloudflare took almost 2 seconds to handle a Next.js SSR request – that’s quite slow.
  • After optimizations, Cloudflare reduced that to ~0.83 seconds (829 ms), which is a huge improvement (less than half the time).
  • Vercel does the same Next.js SSR in ~0.614 seconds, which is still faster than Cloudflare’s improved time. So for Next.js, Vercel maintains an edge in speed (Cloudflare hasn’t caught up yet).

Now, if we go workload by workload more systematically:

Workload Cloudflare (Before) Cloudflare (Now) Vercel (Current)
Next.js SSR 1895 ms 829 ms 614 ms
React SSR 476 ms 126 ms 104 ms
SvelteKit SSR 292 ms 79 ms 91 ms
Math Compute 1469 ms 558 ms 663 ms
Vanilla JS 220 ms 132 ms 164 ms

Looking at this table:

  • For React SSR, Cloudflare went from 476 ms to 126 ms, whereas Vercel is 104 ms. Cloudflare “Now” is just slightly slower than Vercel for React. That’s a major improvement – Cloudflare is nearly as good as Vercel here.
  • For SvelteKit, Cloudflare “Now” is 79 ms versus Vercel’s 91 ms. Cloudflare is actually faster in SvelteKit SSR by a tiny margin. Before, Cloudflare was 292 ms, so they improved tremendously here.
  • For Math, Cloudflare “Now” is 558 ms vs Vercel’s 663 ms. Cloudflare takes the lead in raw computation tasks – which suggests their JavaScript engine can now handle CPU-heavy tasks more efficiently than Vercel’s.
  • For Vanilla JS, Cloudflare “Now” is 132 ms vs Vercel’s 164 ms. Cloudflare also wins here, meaning the base overhead of running a simple script is lower on Cloudflare now.

So, what happened? This meme is referencing a real event in the developer community. Apparently, a developer named Theo compared Cloudflare Workers and Vercel and found Cloudflare was slow, notably in running things like Next.js. Cloudflare’s engineering team then quickly implemented some fixes to make their platform faster. The meme’s image (the chart) is showing the results of those fixes.

Let’s define some terms from the tags and context to understand the situation:

  • Cloudflare Workers: Cloudflare Workers are a CloudComputingService that runs small pieces of code (often JavaScript, being more recently supporting other languages via WebAssembly) in data centers around the world. They are a form of serverless function. You just write a function, and Cloudflare runs it on their edge network (points of presence globally) close to users. Think of it as code running in the CDN (Content Delivery Network) layer. It’s great for things like modifying HTTP requests/responses, rendering pages at the edge, etc.
  • Vercel Edge Functions: Vercel is a cloud platform known for hosting front-end frameworks (they are behind Next.js). Their Edge Functions are similar in concept to Cloudflare Workers – you deploy code that runs globally at edge locations. Under the hood, Vercel’s edge might use a technology like Deno (a runtime similar to Node but secure and supports Web APIs) or Cloudflare-like isolates. The idea is the same: run custom code near the user for speed.
  • Edge Computing: This is the general approach of running computations as close to the end user as possible (at the “edge” of the network) rather than in one central server farm. By doing so, you reduce network travel time. Both Cloudflare Workers and Vercel Edge Functions are edge computing platforms.
  • Serverless: This term means developers don’t manage or even see servers; you just give your code to the cloud, and it runs it on-demand. It does run on servers behind the scenes, of course, but the scaling and management of those servers is invisible to you. Pricing usually is per execution or CPU time, and the platform can scale from zero to many instances automatically.
  • Latency: In this context, latency means the time it takes to execute the code (basically how long the user waits for a response after triggering the function). Lower latency = faster response.
  • Benchmark: A test or set of tests designed to measure performance. Here each bar is a benchmark result for a particular scenario. The meme is essentially showing a benchmarking result comparing two providers.
  • Performance Optimization: The process of making software run faster or more efficiently. Cloudflare’s “5 days of fixes” were performance optimizations – they looked at why certain tasks were slow and improved the code or configuration to speed them up.
  • Next.js Pages (from the tags): Many developers deploy Next.js sites. Next.js can pre-generate pages (SSG) or render on the fly (SSR). On edge platforms, SSR means for each page request, some code runs to produce HTML. That’s why Next.js SSR performance matters – a slow SSR means slow page loads for users.
  • React: A popular JavaScript library for building UIs. SSR with React means running React on the server to render the initial view.
  • Svelte: Another front-end framework, but unlike React which does a lot in the browser or at runtime, Svelte compiles components at build time. SvelteKit is the framework for building full stack apps with Svelte (including SSR ability).
  • Vanilla JS: Plain JavaScript without any libraries or frameworks. Often used as a baseline to see the minimal overhead.
  • Cloud Native Architecture: Designing software to run in the cloud in a scalable, resilient way (often involves microservices, serverless, containers, etc.). Cloudflare and Vercel’s systems are part of modern cloud-native design – highly distributed and managed.
  • CPU Latency vs Network Latency: The chart specifically measures CPU latency (how long the code runs on the CPU). It does not include network latency (the time for a user’s request to travel to the server). Because these are edge functions, if a user is near an edge location, network latency might be tiny anyway. But if you were comparing global vs single-region, network latency would matter a lot. The post’s comment about “global vs not region limited” performance hints at this: when your hosting is global, each user’s request goes to a nearby region. When it’s region-limited (say all requests go to a U.S. server), someone in Asia will have a long network delay. So global hosting generally reduces network delay for far-away users, but it introduces complexity in measuring and ensuring consistent performance (since you have many instances of your code running worldwide).
  • Cold Start: A crucial term in serverless. The first time a serverless function is invoked (or if it hasn’t been invoked in a while), the platform may need to cold start it – that means allocate resources, load your code, initialize a new instance. This can add a significant delay (in some platforms like AWS Lambda with Node.js, cold starts could be 100ms or even up to seconds if large). Warm start means an instance is already up and running, so the request is handled immediately. Cloudflare Workers are known for extremely fast cold starts (a few milliseconds) because of how they use V8 isolates (a lightweight VM inside a single engine process). Vercel’s edge functions also aim for very fast startup. However, the differences we saw (Cloudflare’s high “Before” times) suggest maybe their cold starts or initializations for these larger apps (Next.js, etc.) were not as fast as they thought. They likely improved cold start times or caching of the runtime (“warm-up”) with their fixes. For example, Cloudflare could be keeping Workers alive longer so a series of requests don’t constantly restart fresh, or maybe they upgraded the underlying engine to a faster version.
  • Workers vs Lambdas: This tag refers to Cloudflare Workers (lightweight, isolate-based) vs AWS Lambdas (heavier, container/VM-based). The general context is that Workers (and similar edge functions) trade off some flexibility (e.g., Cloudflare Workers have some limitations like a capped execution time, and used to not support full Node.js APIs) for speed (especially startup speed). The meme is about Cloudflare vs Vercel, but it’s the same category: both are trying to be ultra-fast at the edge, unlike old-school Lambdas which might be slower to start. It’s interesting because here Cloudflare had to optimize to reach performance parity with another edge system, not even a Lambda. So even in the “fast” league, there are winners and losers until you optimize.

In simpler terms, this meme shows Cloudflare’s big comeback in performance after being called slow. It invites us to think about how much frameworks and runtime matter. For a junior developer, an immediate lesson is:

  • Using a heavy framework like Next.js or doing SSR will generally run slower than something lightweight like SvelteKit or plain JS. We see that clearly: Next.js SSR in ~600-800ms vs SvelteKit SSR in ~80-90ms on these platforms. That’s a tenfold difference largely due to framework overhead! It doesn’t mean Next.js is bad – it provides lots of features – but you pay in performance unless you compensate with more resources or optimizations.
  • Cloud providers are constantly updating their tech. A performance problem isn’t always your code; sometimes the platform just isn’t tuned. But when two platforms compete (like Cloudflare vs Vercel), they push each other to remove inefficiencies. As a developer using these services, you benefit from these improvements without changing a line of your own code.
  • When you hear about latency or performance numbers, always consider the context: Are these cold starts? Warm starts? Average of many runs? What exactly was measured? For example, if someone only measured cold-start times, that might look bad, but warm times might be fine. Or vice versa. Here it looks like an average or typical response time for each workload.

Finally, the post asks: how would you look into performance issues when hosting is global? If you’re new to this: hosting globally means you should test from different regions. There are tools (like ping or online services) to test your site from various parts of the world. You might find, for instance, your function is super fast in Europe but slow in Asia – maybe because your “global” isn’t as global as you thought, or because of cold starts in a less-used region. It’s a reminder that PerformanceEngineering in a distributed setting means thinking about more than just one server – you need a holistic view (monitoring logs from all regions, perhaps). In practice, for juniors: focus on writing efficient code first, but also be aware that where and how it runs (the platform) can greatly affect performance.

So, this meme, while funny in showing a rivalry, is also educational: it highlights the impact of optimizations and the importance of measuring performance. And it shows that even huge differences (Cloudflare was sometimes 2-3× slower than Vercel) can be narrowed quickly when experts tackle the problem. It’s a bit of optimistic news: performance issues can be fixed! And as developers, we should be curious – what did Cloudflare do in those 5 days? It likely involved digging deep into their runtime system (maybe using BenchmarkingTools internally to trace where time was spent, like profiling the execution of Next.js on their platform) and then refining that. That’s a cool example of real-world problem solving in the cloud.

Level 3: The Cold-Start Cold War

Cloudflare and Vercel are engaged in a millisecond arms race on the frontier of cloud computing. The meme’s bar chart captures a dramatic edge runtime showdown – a tongue-in-cheek portrayal of how quickly a public shaming can ignite a performance war. Just days ago, a prominent dev influencer (Theo) publicly benchmarked Cloudflare Workers against Vercel Edge Functions, revealing Cloudflare’s dismal latencies (those towering grey bars). In response, Cloudflare’s engineers went into overdrive – likely pulling a few all-nighters – and in just 5 days delivered optimizations that slashed their CPU execution times. The orange “Cloudflare – Now” bars show a stunning improvement over the grey “Before” bars, drawing cheers from developers who love a good comeback. It’s as if Cloudflare said, “Oh, you think we’re slow? Hold my coffee…” and came back with code turbocharged.

From a senior developer’s perspective, this chart is a snapshot of serverless architecture brinkmanship. We see two edge computing providers leapfrogging each other, with each new update “rewriting the performance narrative.” This pattern is familiar in tech: whether it’s browser JavaScript engines or cloud ServerlessFunctions, competition drives continuous tuning. The humor here is partly in benchmarketing – the way cloud providers use benchmarks as bragging rights. Cloudflare was caught flat-footed, trailing badly in Next.js and math-heavy tasks, which is embarrassing when your rival (Vercel) is flaunting sub-second response times. The meme lampoons how every cloud release claims to be blazing fast or “50% less latency!” as if these platforms are Pokémon evolving overnight. Experienced devs chuckle because we’ve all sat through vendor presentations touting lower latency and higher throughput, knowing there’s often fine print (like specific conditions or one-off fixes) behind those claims.

Yet, in this case, Cloudflare’s improvements are very real and quantifiable – and that strikes a chord with performance engineers. For Next.js (a heavy React SSR workload), Cloudflare’s runtime was initially crawling at ~1895 ms, nearly 3× Vercel’s ~614 ms. Ouch. After optimizations, Cloudflare chopped that down to ~829 ms. It’s still slower than Vercel for Next pages (614 ms), suggesting that Next.js’s framework overhead or Cloudflare’s runtime constraints remain a bottleneck. Possibly Next.js SSR involves large bundles or Node-specific APIs that Cloudflare’s V8 isolate struggled with. Even after optimizations, Cloudflare hasn’t entirely caught up on Next.js – implying there are deeper architectural reasons (like how server-side rendering in Next boots up). Maybe Vercel’s tight integration with Next.js (since Vercel builds Next) gives them an edge via prerendering tricks or caching that pure Cloudflare execution can’t easily match.

But look at React SSR without all of Next’s baggage: Cloudflare plunges from 476 ms to 126 ms, almost on par with Vercel’s 104 ms. That’s a speed-up – huge! This hints Cloudflare fixed something fundamental, likely around how their Edge Runtime handles heavy JavaScript execution. Perhaps they introduced a more aggressive JIT compilation or managed to keep the worker instances warm longer to avoid repeated startup costs. In serverless performance, the infamous cold start is often the culprit for high latency. Cloudflare Workers traditionally pride themselves on fast startup (since they use V8 isolates rather than full VM containers like classic AWS Lambdas), but the Before numbers suggest each invocation might have been paying some setup cost for larger apps. It’s possible Cloudflare’s team optimized module loading or enabled caching of initialized code for subsequent calls. The warm-vs-cold start battle is very much like a “Cold War” in serverless: invisible to users until you measure it, then suddenly you realize half your latency was just waiting for the runtime to boot your code. Cloudflare likely shortened that wait significantly.

The real shockers are SvelteKit, Math, and Vanilla JS results. After fixes, Cloudflare actually beats Vercel: e.g. SvelteKit dropped from 292 ms to a mere 79 ms (faster than Vercel’s 91 ms), and heavy math computations went from a sluggish 1469 ms to 558 ms (also faster than Vercel’s 663 ms). Cloudflare not only caught up, it edged ahead in those areas. This hints at lower-level improvements in Cloudflare’s JavaScript engine or scheduling. For CPU-bound math, maybe Cloudflare removed a throttle or unlocked better optimization flags in their V8 engine – essentially letting complex calculations utilize more CPU or JIT optimizations. It’s a bit ironic and funny: Cloudflare Workers historically weren’t pitched for heavy compute (they are often used for lightweight tasks at the edge, with strict time limits), yet here Cloudflare is thumping its chest about beating Vercel in a pure math benchmark. It reminds seasoned devs of those times when one database bragged about an absurd TPC benchmark that no real app would ever hit – but hey, a win is a win when marketing’s at play. The Vanilla JS test (just basic code execution without a big framework) going from 220 ms to 132 ms, beating Vercel’s 164 ms, is particularly telling. It suggests Cloudflare shaved off general overhead – the baseline cost of running any code got lower. That’s the kind of across-the-board improvement that takes serious low-level engineering (possibly updating the runtime to a newer, faster JavaScript engine or reducing isolation overhead between requests).

Behind the humor, there’s an engineering morality tale: sometimes a bit of focused PerformanceOptimization can yield massive gains. Cloudflare’s 5-day sprint feels like a montage in a sports anime – underdog gets called out, trains hard (refactors C++ code, tunes GC, whatever it took), and comes back dramatically stronger. In real-world teams, we have backlogs full of “performance refactoring” tasks we seldom get to. This meme nudges us: what if those refactors you’ve been putting off could halve your app’s latency? Cloudflare’s leap invites both admiration and envy – not every company has the talent (or motivation) to pull off such optimizations on demand. Often, it takes a competitive fire or public embarrassment to light that spark. Seasoned devs smile knowingly because we’ve seen managers ignore performance issues until a major client or competitor highlight them, and then suddenly it’s all hands on deck. As the post caption muses: imagine if the refactoring you want to do at work could deliver such a visible improvement – it’s a challenge to prioritize quality and speed even without an internet influencer shaming us into it!

Finally, the meme touches on the notion of “global” hosting vs region-limited performance issues. In a globally distributed platform (like Cloudflare or Vercel’s edge networks), performance tuning can be trickier: your code runs in dozens of data centers worldwide. You have to consider variability – maybe one region’s node was slower, or cold starts happening independently in each region. Senior engineers think about things like the speed of deployment propagation, caching across POPs (points of presence), and the worst-case latency a distant user might feel. The chart’s focus is CPU latency (compute time), isolating how fast the runtime itself is, but it opens the question: when you deploy globally, how do you measure and ensure consistent performance? Maybe Cloudflare initially optimized for network latency (their edge everywhere) and overlooked CPU inefficiencies, whereas Vercel’s model, possibly running fewer regional lambdas, had a snappier compute runtime. This meme’s edge computing duel reminds us that “fast globally” means balancing many factors: speedy code execution, minimal cold starts, efficient data routing, etc. It’s a playful data point in the broader context of CloudNativeArchitecture where providers constantly trade blows. Today Cloudflare claims victory in some benchmarks; tomorrow Vercel (or another competitor) will no doubt tweak something and post their chart showing superior numbers. And we, the developers, get front-row seats and better performance for our apps — truly a win-win in this cloud one-upmanship saga. 😄

Description

A bar chart titled 'Cloudflare vs Vercel CPU Benchmarks' with subtitle 'Lower is Better'. The chart compares latency in milliseconds across five workloads: Next.js, React SSR, SvelteKit, Math, and Vanilla JS. Three bars per category represent 'Cloudflare - Before' (gray), 'Cloudflare - Now' (orange), and 'Vercel' (black). Key data: Next.js shows 1895ms/829ms/614ms, React SSR 476ms/126ms/104ms, SvelteKit 292ms/79ms/91ms, Math 1469ms/558ms/663ms, Vanilla JS 220ms/132ms/164ms. Notably, Cloudflare-Now beats Vercel in SvelteKit (79 vs 91), Math (558 vs 663), and Vanilla JS (132 vs 164), while Vercel wins in Next.js and React SSR

Comments

27
Anonymous ★ Top Pick Cloudflare improved their benchmarks so much that Vercel's only remaining competitive advantage is having a nicer dashboard to watch your bill grow
  1. Anonymous ★ Top Pick

    Cloudflare improved their benchmarks so much that Vercel's only remaining competitive advantage is having a nicer dashboard to watch your bill grow

  2. Anonymous

    The most effective performance tuning tool isn't a profiler, it's a tweet from a popular developer influencer. The resulting PRs are measured in hours, not story points

  3. Anonymous

    Looks like Cloudflare’s secret optimization was re-labeling their cold-start numbers as “before” and praying the execs never learn what Next.js does to TTFB

  4. Anonymous

    The real benchmark here is how many milliseconds it takes for a senior engineer to explain why these numbers don't matter because 'we're not at that scale yet' while simultaneously obsessing over shaving 2ms off their personal blog's load time

  5. Anonymous

    When your 'optimization' turns a 1895ms Next.js cold start into 829ms and you're still slower than Vercel's 614ms - that's the serverless equivalent of bragging about your diet while still ordering large fries

  6. Anonymous

    Nothing sells a replatform faster than a “lower is better” chart - until the P95 shows it’s all DB egress and auth, not CPU

  7. Anonymous

    Cloudflare's 'Now' proves edge platforms evolve faster than your multi-region failover ever will - Vercel, time to Workers on your homework?

  8. @KrompirPita 9mo

    who's Theo, what is CF, what is Vercel?..

    1. @feralape 9mo

      Just a gay TS Twink who cries on YouTube and reddit all day about vercel lmao.

      1. @nyxiereal 9mo

        You're describing most TS developers

        1. @feralape 9mo

          Not my problem I'm a quant

        2. @nwordtech 9mo

          Homosexual urge to suffer in the cage of thy own making?

      2. @itsTyrion 8mo

        me when I just pull things out of my ass

        1. @feralape 8mo

          Says the TS twink

          1. @itsTyrion 8mo

            my build might qualify as twink but I'm not a TS dev xD

            1. @hur7m3 8mo

              Yet

  9. @feralape 9mo

    They should go learn some math tbh

  10. @H3R3T1C 9mo

    Easy.... use Rust

  11. @Algoinde 8mo

    sveltekit my beloved

  12. @maks_mikh 8mo

    Something to think about

  13. @LeakyRectifiedLinearUnit 8mo

    how the fuck sveltekit is faster than vanilla

    1. @Algoinde 8mo

      benches across tasks are probably not comparable, most likely their sk bench just does less

      1. @RiedleroD 8mo

        or that

    2. @RiedleroD 8mo

      badly written vanilla js I'm guessing

    3. @itsTyrion 8mo

      probably poorly written Vanilla JS, but Svelte is pretty fast for a larger framework iirc

  14. dev_meme 8mo

    Wait, did we got CF employee in comments section?

  15. @hur7m3 8mo

    Why were these invalid email commits popping up under your name? I'm mildly curious but couldn't piece it together from skimming the issue discussion.

Use J and K for navigation