ShopperCove
Menu
All writingBlogTopicsCategoriesAboutRSS
Blog
Categories
Observability & SRE62All categories
About

Plate 94

  1. Blog

Should You Leave Prettier? 1.59s vs 0.51s

dprint 0.60.1 vs Prettier 3.9.9 on 180 files (120 JS + 40 JSON + 20 MD, 38925 B pristine): write medians 514 ms vs 1586 ms; check 455 ms vs 1313 ms. Output 44805 vs 45285 B. All 120 JS files differed on arrow-param parentheses under these defaults.

Aditya Challa·5 October 2026·5 min read

Summary
On this page
  1. What I tested
  2. Is dprint faster than Prettier?
  3. What do you lose leaving Prettier?
  4. Should you leave Prettier for dprint?
  5. Sources
  6. Related

On a 180-file mixed tree (120 JavaScript, 40 JSON, 20 Markdown; 38,925 bytes unformatted), Prettier 3.9.9 took a median 1,586 ms to write. dprint 0.60.1 took 514 ms. Same machine, interleaved warm runs, write mode after restoring a pristine copy each round.

Short answer: leave Prettier for dprint when CI format time is the pain and you can accept dprint's style defaults (or configure them). Keep Prettier when your team already locked Prettier options, editor plugins, or a shareable config that dprint does not match. No affiliate links in this post.

What I tested

  • Machine: 8 vCPU Intel Xeon / 15 GB RAM Linux cloud box, Node 20.19.2, tested 5 Oct 2026 (about 22:55 to 23:10 IST). Shared box; tools interleaved each round.
  • Fixture: 180 generated files under src/ (120 messy JS modules, 40 compact JSON docs, 20 short Markdown notes). Unformatted tree size 38,925 bytes.
  • Tools: prettier 3.9.9 (--write on **/*.{js,json,md}, printWidth 80, tabWidth 2, semi true, double quotes); dprint 0.60.1 with TypeScript/JSON/Markdown WASM plugins (lineWidth 80, indentWidth 2, semiColons always, preferDouble).
  • Timing: five interleaved warm write runs after one warmup each. Each run starts from a fresh copy of the pristine tree. Median wall-clock of the full CLI call.
  • Check mode (already formatted trees): Prettier --check median 1,313 ms; dprint check median 455 ms.
  • Output bytes after write: Prettier 45,285 B; dprint 44,805 B. Style diff: all 120 JS files differed on arrow-parameter parentheses (Prettier (n) =>, dprint n => with these defaults).
  • One surprise: dprint was about 3.1x faster on write and about 2.9x faster on check, but a naive config swap rewrites every JS file's arrow style.
  • Not tested: TypeScript/TSX/Vue/Svelte parsers, Prettier plugins (Tailwind, organize-imports), dprint incremental cache across commits, editor save-on-format UX, monorepo ignore globs at scale, Windows/macOS, format-on-stash hooks.

Is dprint faster than Prettier?

ToolWrite medianWrite runs (ms)Check medianOutput bytes
dprint 0.60.1514 ms468 / 481 / 526 / 515 / 514455 ms44,805
Prettier 3.9.91,586 ms1,387 / 1,704 / 1,586 / 1,566 / 1,6451,313 ms45,285

On this fixture dprint finished write about 3.1x faster and check about 2.9x faster. Byte totals were close. The leave-Prettier case is strongest when format or --check still costs well over a second in CI and you are willing to adopt dprint's style table.

If you already moved lint to oxlint or Biome, format is often the next slow JS step. The Biome vs ESLint + Prettier post and the oxfmt vs Prettier Markdown post are the related formatter/linter decisions on this site; this post is the multi-language dprint path.

What do you lose leaving Prettier?

Prettier's option surface and plugin ecosystem are larger. Teams that rely on Prettier plugins, a company-wide .prettierrc, or "Prettier as the style guide" will churn on the first PR if arrow parens, trailing commas, or JSX spacing differ. On this run every JS file changed arrow-parameter parentheses under default-ish configs, so a switch is a one-time mass diff unless you tune dprint to match.

Also match the tool to the languages you format. dprint's WASM plugins cover TypeScript, JSON, Markdown, and more, but a Prettier-only plugin for a niche syntax is a hard stop. Re-time your own tree with write and check before rewriting the CI job. The oxlint vs ESLint switch post is the lint-side sibling when CI still pays for both lint and format.

Should you leave Prettier for dprint?

SituationMy pick
CI --check or format still takes over a second on a mid-size treeTry dprint; measure write and check on your repo
Already on Biome or oxfmt for the same filesStay consistent; do not add a third formatter
Prettier plugins or a locked shareable config you cannot retuneKeep Prettier
You need one formatter across JS, JSON, Markdown, and other dprint pluginsdprint is the better fit to evaluate
First PR would rewrite thousands of arrow-paren linesTune dprint to match Prettier, or keep Prettier

Bottom line: on 180 files, Prettier took 1.59 s to write and dprint took 0.51 s. Who should not switch yet: teams blocked on Prettier plugins or unwilling to take a style mass-diff. Everyone else still paying over a second for format should measure their own tree the same way.

How this was made: I generated the fixture, ran interleaved Prettier and dprint write and check on the ShopperCove test box, and kept the timing JSON; the write-up was drafted with AI help and checked against that output.

Sources

  • https://dprint.dev/
  • https://prettier.io/docs/en/cli.html
  • https://github.com/dprint/dprint
  • https://www.npmjs.com/package/dprint
  • https://www.npmjs.com/package/prettier
  • https://plugins.dprint.dev/

Related

  • https://www.shoppercove.com/blog/biome-vs-eslint-prettier
  • https://www.shoppercove.com/blog/oxfmt-0-72-native-markdown-formatter-prettier-parity-october-2026
  • https://www.shoppercove.com/blog/oxlint-vs-eslint
  • https://www.shoppercove.com/blog/oxlint-1-87-react-suggestions-a11y-fixes-october-2026
  • https://www.shoppercove.com/blog/biome-2-5-15-type-inference-nursery-rules-october-2026
  • https://www.shoppercove.com/blog/eslint-10-12-release-october-2026
  • https://www.shoppercove.com/blog/vite-plus-1-0-unified-toolchain-october-2026
  • https://www.shoppercove.com/blog/pnpm-vs-npm-vs-bun
dprintprettiercode formatterbenchmarkingjavascriptciperformance

Lab evidence

What I found running this

Hands-on on ShopperCove box 5 Oct 2026 ~22:55-23:10 IST (8 vCPU Intel Xeon / 15 GB shared Linux, Node 20.19.2). Fixture: 180 generated files (120 JS + 40 JSON + 20 MD), pristine 38925 bytes. Versions: prettier 3.9.9 (printWidth 80, tabWidth 2, semi true, singleQuote false); dprint 0.60.1 with typescript/json/markdown WASM plugins (lineWidth 80, indentWidth 2, semiColons always, preferDouble). Write wall medians (5 interleaved, restore pristine each run): prettier 1585.937 ms (1387.363/1703.603/1585.937/1565.573/1645.374); dprint 514.018 ms (467.675/480.512/526.194/514.788/514.018). Check medians on already-formatted trees: prettier 1312.532 ms; dprint 454.976 ms. Output bytes: prettier 45285; dprint 44805. Style: all 120 JS files differed on arrow-param parens (Prettier (n)=> vs dprint n=>). Raw: /workspace/bench-dprint/res-dprint.json, res-dprint-check.json. Not tested: TS/TSX/Vue plugins, Prettier plugins, dprint incremental cache, editors, Windows/macOS. No affiliate.

Notes when a lab post goes up

Occasional email for new hands-on reviews. No sequence and no sponsors.

Related links

  • Plate 46

    esbuild-register vs jiti: 343ms vs 540ms Cold

    esbuild-register 3.6.0 vs jiti 2.7.0 on a 61-file TypeScript graph: cold wall medians 343 ms vs 540 ms (~1.57x); after jiti disk cache warm, 185 ms vs esbuild-register 350 ms. Same printed result 970.

    5 Oct 2026

  • Plate 45

    Should You Leave Depcruise? 679ms Test

    Madge 8.0.0 vs dependency-cruiser 16.10.2 on 116 JS files: median wall 679 ms vs 1122 ms (~1.65x). Both found the same 2 circular dependency groups. Depcruise also reported 120 modules / 193 dependencies.

    5 Oct 2026

  • Plate 63

    Biome vs ESLint: Should You Switch? 0.41s vs 18.7s

    Biome 2.5.15 check vs ESLint 9.39.4 + Prettier 3.8.4 on react-hook-form (317 files): 0.41 s vs 18.7 s sequential stack (ESLint 13.58 s, Prettier check 5.22 s). migrate eslint: 54/476 direct, ~50% covered. Biome 200 errors/427 warnings vs ESLint 0/562; 9 format diffs; 287 noExplicitAny from recommended.

    5 Oct 2026

On this page

  1. What I tested
  2. Is dprint faster than Prettier?
  3. What do you lose leaving Prettier?
  4. Should you leave Prettier for dprint?
  5. Sources
  6. Related
All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove