Benchmarks

How long a render takes, how much CPU it uses and how much memory it holds, for Kitesurf, Browser Run and a cold Chrome. Last run 2026-09-25 at 01:17 UTC.

A typical page

The median across 38 pages, each one the median of 15 runs.

Wall time

Kitesurf: 1.18 s

  • Browser Run654 ms
  • Chrome (cold start)1.09 s

Kitesurf: 1.05 s

  • Browser Run439 ms
  • Chrome (cold start)953 ms

CPU time

Kitesurf: 491 ms

  • Browser Run1.19 s
  • Chrome (cold start)1.19 s

Kitesurf: 435 ms

  • Browser Run788 ms
  • Chrome (cold start)996 ms

Memory

Kitesurf: 38 MiB

  • Browser Run271 MiB
  • Chrome (cold start)335 MiB

Kitesurf: 17 MiB

  • Browser Run269 MiB
  • Chrome (cold start)323 MiB

Every page

Open a row for median, p95 and p99. The address bar keeps your view, so you can share it.

38 pages · Median wall time

  • Kitesurf
  • Browser Run
  • Chrome (cold start)
  1. Example DomainKitesurf: 385 msBrowser Run: 259 msChrome (cold start): 684 ms
    https://example.com/
    Wall timeMedianp95p99
    Kitesurf385 ms424 ms424 ms
    Browser Run259 ms687 ms687 ms
    Chrome (cold start)684 ms706 ms706 ms
  2. Hacker NewsKitesurf: 544 msBrowser Run: 660 msChrome (cold start): 2.06 s
    https://news.ycombinator.com/
    Wall timeMedianp95p99
    Kitesurf544 ms1.22 s1.22 s
    Browser Run660 ms1.31 s1.31 s
    Chrome (cold start)2.06 s3.99 s3.99 s
  3. Cloudflare Developer DocsKitesurf: 2.03 sBrowser Run: 843 msChrome (cold start): 1.13 s
    https://developers.cloudflare.com/
    Wall timeMedianp95p99
    Kitesurf2.03 s2.11 s2.11 s
    Browser Run843 ms1.13 s1.13 s
    Chrome (cold start)1.13 s1.16 s1.16 s
  4. The Cloudflare BlogKitesurf: 1.81 sBrowser Run: 735 msChrome (cold start): 1.10 s
    https://blog.cloudflare.com/
    Wall timeMedianp95p99
    Kitesurf1.81 s1.97 s1.97 s
    Browser Run735 ms896 ms896 ms
    Chrome (cold start)1.10 s1.15 s1.15 s
  5. Wikipedia PortalKitesurf: 1.69 sBrowser Run: 614 msChrome (cold start): 971 ms
    https://en.wikipedia.org/
    Wall timeMedianp95p99
    Kitesurf1.69 s1.76 s1.76 s
    Browser Run614 ms1.10 s1.10 s
    Chrome (cold start)971 ms1.73 s1.73 s
  6. MDN Web DocsKitesurf: 1.75 sBrowser Run: 619 msChrome (cold start): 951 ms
    https://developer.mozilla.org/en-US/
    Wall timeMedianp95p99
    Kitesurf1.75 s1.83 s1.83 s
    Browser Run619 ms830 ms830 ms
    Chrome (cold start)951 ms989 ms989 ms
  7. El MundoKitesurf: 3.17 sBrowser Run: 1.51 sChrome (cold start): 3.66 s
    https://www.elmundo.es/
    Wall timeMedianp95p99
    Kitesurf3.17 s4.29 s4.29 s
    Browser Run1.51 s4.77 s4.77 s
    Chrome (cold start)3.66 s8.79 s8.79 s
  8. RTP NotíciasKitesurf: 2.04 sBrowser Run: 1.70 sChrome (cold start): 2.68 s
    https://www.rtp.pt/noticias/
    Wall timeMedianp95p99
    Kitesurf2.04 s2.39 s2.39 s
    Browser Run1.70 s2.56 s2.56 s
    Chrome (cold start)2.68 s2.83 s2.83 s
  9. The GuardianKitesurf: 2.59 sBrowser Run: 902 msChrome (cold start): 1.54 s
    https://www.theguardian.com/international
    Wall timeMedianp95p99
    Kitesurf2.59 s2.76 s2.76 s
    Browser Run902 ms1.10 s1.10 s
    Chrome (cold start)1.54 s1.63 s1.63 s
  10. TodoMVC · JavaScript ES6Kitesurf: 661 msBrowser Run: 324 msChrome (cold start): 762 ms
    https://todomvc.com/examples/javascript-es6/dist/
    Wall timeMedianp95p99
    Kitesurf661 ms713 ms713 ms
    Browser Run324 ms517 ms517 ms
    Chrome (cold start)762 ms770 ms770 ms
  11. TodoMVC · ReactKitesurf: 641 msBrowser Run: 376 msChrome (cold start): 771 ms
    https://todomvc.com/examples/react/dist/index.html
    Wall timeMedianp95p99
    Kitesurf641 ms714 ms714 ms
    Browser Run376 ms509 ms509 ms
    Chrome (cold start)771 ms803 ms803 ms
  12. TodoMVC · VueKitesurf: 676 msBrowser Run: 343 msChrome (cold start): 750 ms
    https://todomvc.com/examples/vue/dist/
    Wall timeMedianp95p99
    Kitesurf676 ms715 ms715 ms
    Browser Run343 ms530 ms530 ms
    Chrome (cold start)750 ms806 ms806 ms
  13. TodoMVC · AngularKitesurf: 731 msBrowser Run: 400 msChrome (cold start): 798 ms
    https://todomvc.com/examples/angular/dist/browser/
    Wall timeMedianp95p99
    Kitesurf731 ms762 ms762 ms
    Browser Run400 ms553 ms553 ms
    Chrome (cold start)798 ms824 ms824 ms
  14. TodoMVC · PreactKitesurf: 499 msBrowser Run: 319 msChrome (cold start): 743 ms
    https://todomvc.com/examples/preact/dist/
    Wall timeMedianp95p99
    Kitesurf499 ms581 ms581 ms
    Browser Run319 ms765 ms765 ms
    Chrome (cold start)743 ms753 ms753 ms
  15. fingerprint homeKitesurf: 848 msBrowser Run: 745 msChrome (cold start): 1.38 s
    https://fingerprint.dev/
    Wall timeMedianp95p99
    Kitesurf848 ms904 ms904 ms
    Browser Run745 ms1.88 s1.88 s
    Chrome (cold start)1.38 s1.67 s1.67 s
  16. fingerprint pricingKitesurf: 594 msBrowser Run: 667 msChrome (cold start): 1.45 s
    https://fingerprint.dev/pricing/
    Wall timeMedianp95p99
    Kitesurf594 ms630 ms630 ms
    Browser Run667 ms930 ms930 ms
    Chrome (cold start)1.45 s1.48 s1.48 s
  17. fingerprint legal/termsKitesurf: 601 msBrowser Run: 858 msChrome (cold start): 1.44 s
    https://fingerprint.dev/legal/terms/
    Wall timeMedianp95p99
    Kitesurf601 ms639 ms639 ms
    Browser Run858 ms1.07 s1.07 s
    Chrome (cold start)1.44 s1.48 s1.48 s
  18. markodenic from-zero-to-web-developerKitesurf: 817 msBrowser Run: 657 msChrome (cold start): 1.03 s
    https://markodenic.tech/from-zero-to-web-developer/
    Wall timeMedianp95p99
    Kitesurf817 ms857 ms857 ms
    Browser Run657 ms971 ms971 ms
    Chrome (cold start)1.03 s1.11 s1.11 s
  19. markodenic i-took-pong-wars-and-made-it-playableKitesurf: 827 msBrowser Run: 639 msChrome (cold start): 1.01 s
    https://markodenic.tech/i-took-pong-wars-and-made-it-playable/
    Wall timeMedianp95p99
    Kitesurf827 ms862 ms862 ms
    Browser Run639 ms763 ms763 ms
    Chrome (cold start)1.01 s1.17 s1.17 s
  20. markodenic tools-i-made-for-youKitesurf: 806 msBrowser Run: 587 msChrome (cold start): 1.10 s
    https://markodenic.tech/tools-i-made-for-you/
    Wall timeMedianp95p99
    Kitesurf806 ms1.10 s1.10 s
    Browser Run587 ms761 ms761 ms
    Chrome (cold start)1.10 s1.30 s1.30 s
  21. mautic blogKitesurf: 4.25 sBrowser Run: 3.13 sChrome (cold start): 3.13 s
    https://mautic.org/blog/
    Wall timeMedianp95p99
    Kitesurf4.25 s4.45 s4.45 s
    Browser Run3.13 s4.20 s4.20 s
    Chrome (cold start)3.13 s3.28 s3.28 s
  22. mautic blog/a-practical-guide-to-keeping-ethicKitesurf: 4.50 sBrowser Run: 3.10 sChrome (cold start): 3.31 s
    https://mautic.org/blog/a-practical-guide-to-keeping-ethics-at-the-forefront-of-marketing/
    Wall timeMedianp95p99
    Kitesurf4.50 s4.85 s4.85 s
    Browser Run3.10 s4.15 s4.15 s
    Chrome (cold start)3.31 s4.26 s4.26 s
  23. mautic blog/mautic-3-is-comingKitesurf: 4.42 sBrowser Run: 3.18 sChrome (cold start): 3.33 s
    https://mautic.org/blog/mautic-3-is-coming/
    Wall timeMedianp95p99
    Kitesurf4.42 s4.73 s4.73 s
    Browser Run3.18 s3.71 s3.71 s
    Chrome (cold start)3.33 s3.66 s3.66 s
  24. preventa homeKitesurf: 1.03 sBrowser Run: 1.34 sChrome (cold start): 1.36 s
    https://www.preventa.ro/
    Wall timeMedianp95p99
    Kitesurf1.03 s1.10 s1.10 s
    Browser Run1.34 s1.89 s1.89 s
    Chrome (cold start)1.36 s1.41 s1.41 s
  25. preventa en/aboutKitesurf: 504 msBrowser Run: 562 msChrome (cold start): 811 ms
    https://www.preventa.ro/en/about/
    Wall timeMedianp95p99
    Kitesurf504 ms518 ms518 ms
    Browser Run562 ms763 ms763 ms
    Chrome (cold start)811 ms826 ms826 ms
  26. preventa en/termsKitesurf: 524 msBrowser Run: 581 msChrome (cold start): 805 ms
    https://www.preventa.ro/en/terms/
    Wall timeMedianp95p99
    Kitesurf524 ms692 ms692 ms
    Browser Run581 ms698 ms698 ms
    Chrome (cold start)805 ms824 ms824 ms
  27. relic homeKitesurf: 1.38 sBrowser Run: 689 msChrome (cold start): 1.15 s
    https://relic.so/
    Wall timeMedianp95p99
    Kitesurf1.38 s1.47 s1.47 s
    Browser Run689 ms1.70 s1.70 s
    Chrome (cold start)1.15 s1.20 s1.20 s
  28. relic changelogKitesurf: 1.17 sBrowser Run: 634 msChrome (cold start): 925 ms
    https://relic.so/changelog
    Wall timeMedianp95p99
    Kitesurf1.17 s1.56 s1.56 s
    Browser Run634 ms1.82 s1.82 s
    Chrome (cold start)925 ms959 ms959 ms
  29. relic changelogKitesurf: 1.20 sBrowser Run: 569 msChrome (cold start): 916 ms
    https://relic.so/changelog
    Wall timeMedianp95p99
    Kitesurf1.20 s1.55 s1.55 s
    Browser Run569 ms760 ms760 ms
    Chrome (cold start)916 ms969 ms969 ms
  30. swytchcode homeKitesurf: 3.43 sBrowser Run: 602 msChrome (cold start): 1.03 s
    https://www.swytchcode.com/
    Wall timeMedianp95p99
    Kitesurf3.43 s3.71 s3.71 s
    Browser Run602 ms1.67 s1.67 s
    Chrome (cold start)1.03 s1.17 s1.17 s
  31. swytchcode apis/scrapegraphKitesurf: 1.50 sBrowser Run: 842 msChrome (cold start): 1.09 s
    https://www.swytchcode.com/apis/scrapegraph
    Wall timeMedianp95p99
    Kitesurf1.50 s1.60 s1.60 s
    Browser Run842 ms1.15 s1.15 s
    Chrome (cold start)1.09 s1.45 s1.45 s
  32. swytchcode apis/formapiKitesurf: 1.44 sBrowser Run: 651 msChrome (cold start): 986 ms
    https://www.swytchcode.com/apis/formapi
    Wall timeMedianp95p99
    Kitesurf1.44 s1.55 s1.55 s
    Browser Run651 ms1.04 s1.04 s
    Chrome (cold start)986 ms1.17 s1.17 s
  33. trysansa homeKitesurf: 1.70 sBrowser Run: 813 msChrome (cold start): 1.90 s
    https://trysansa.com/
    Wall timeMedianp95p99
    Kitesurf1.70 s2.02 s2.02 s
    Browser Run813 ms1.50 s1.50 s
    Chrome (cold start)1.90 s2.16 s2.16 s
  34. trysansa product/smart-model-routingKitesurf: 1.88 sBrowser Run: 813 msChrome (cold start): 1.96 s
    https://trysansa.com/product/smart-model-routing
    Wall timeMedianp95p99
    Kitesurf1.88 s2.28 s2.28 s
    Browser Run813 ms1.03 s1.03 s
    Chrome (cold start)1.96 s2.62 s2.62 s
  35. trysansa benchmark/computer_scienceKitesurf: 924 msBrowser Run: 740 msChrome (cold start): 1.08 s
    https://trysansa.com/benchmark/computer_science
    Wall timeMedianp95p99
    Kitesurf924 ms974 ms974 ms
    Browser Run740 ms852 ms852 ms
    Chrome (cold start)1.08 s1.35 s1.35 s
  36. umami homeKitesurf: 1.19 sBrowser Run: 639 msChrome (cold start): 1.08 s
    https://umami.is/
    Wall timeMedianp95p99
    Kitesurf1.19 s1.37 s1.37 s
    Browser Run639 ms1.09 s1.09 s
    Chrome (cold start)1.08 s1.17 s1.17 s
  37. umami contactKitesurf: 1.17 sBrowser Run: 542 msChrome (cold start): 1.04 s
    https://umami.is/contact
    Wall timeMedianp95p99
    Kitesurf1.17 s1.32 s1.32 s
    Browser Run542 ms756 ms756 ms
    Chrome (cold start)1.04 s1.14 s1.14 s
  38. umami compare/amplitudeKitesurf: 1.26 sBrowser Run: 569 msChrome (cold start): 1.13 s
    https://umami.is/compare/amplitude
    Wall timeMedianp95p99
    Kitesurf1.26 s1.39 s1.39 s
    Browser Run569 ms912 ms912 ms
    Chrome (cold start)1.13 s1.17 s1.17 s
How we measure

For each page, endpoint and backend, the harness attempts 15 recorded renders after 2 warm-up renders. The default is the median, the middle sample after sorting. Choose p95 or p99 in Options to inspect the upper tail. With a small sample, both percentiles can select the same slowest render. This page shows the latest run because its corpus can change.

Wall time

Elapsed time for the render action as reported by the backend, not round-trip time from the benchmark client. Kitesurf's timer covers the request and reading the full screenshot or HTML response. Browser Run reports server-side time around the browser action. Neither includes network time between the client and Cloudflare. The Chrome (cold start) timer begins when Chrome is ready for CDP, so launch time is excluded.

CPU time

Processor time, not elapsed time; time spent waiting does not count. Kitesurf sums CPU across the main Worker, page JavaScript isolates and renderer. Browser Run and Container use their container-level CPU measurements. Chrome (cold start) adds the Node driver CPU to Chrome's CPU.

Memory

Absolute memory at capture, not the increase caused by one page. Kitesurf sums the main Worker, page JavaScript isolates and renderer. Chrome-backed measurements use proportional set size (PSS) across Chrome's process tree.

  • Kitesurf: the total can include memory retained until the page closes.
  • Browser Run: Chrome is reused, so its PSS can include memory retained from earlier pages.
  • Chrome (cold start): each render gets a fresh Chrome process tree.