One common concern about browser extensions is their impact on browser startup time and memory. Here is what actually matters, and what does not.

What affects extension performance

Startup impact: extensions with background scripts that run when the browser opens add startup overhead. For most well-written extensions, this is under 100ms per extension. For 10 extensions, that is under 1 second total.

Memory: each extension process uses memory. Modern extensions (MV3) use service workers rather than persistent background pages, reducing idle memory. Well-written MV2 extensions with background pages typically use 2-5MB per extension.

Content scripts on pages: extensions that inject scripts into every page add rendering overhead. For one or two such extensions (like a dark mode extension), this is negligible. For 10+ content-script extensions, it can noticeably slow down page loads.

The practical test

If you notice Firefox is slower than expected:

  1. Open about:performance — this shows CPU and memory usage by page and extension
  2. Find which extension is using most resources
  3. Test with that extension disabled

The performance culprit is usually not what you expect — it is often not the dark mode extension but a little-noticed extension doing network requests or complex content script work.

Extension size does not matter much

A large extension file size (the .xpi download size) does not indicate a slow extension. What matters is what happens at runtime: how much JavaScript runs, how much memory is allocated, how many network requests are made.

An extension that is 2MB on disk but runs a simple 50-line background script is faster than a 100KB extension that injects a 50KB content script into every page.

My 11 extensions: resource usage

All 11 are lightweight:

  • New tab extensions (Daily Planner, Habit Tracker, Quick Calculator, Speed Dial, News Widget, Weather Clock, Stock Market): run only when the new tab is open. Zero background overhead except periodic data fetches for Weather and Stock extensions.
  • NightOwl: injects CSS into every page. 1-2KB of CSS per page. Minimal CPU impact.
  • Tab Manager: background script listens for tab events. Very lightweight.
  • Voice Notes: background script activates only during recording. Zero idle impact.
  • AI Writing: content script injected on user request. No passive overhead.

None of them are likely to show up in about:performance as significant resource users.

These are 11 Firefox extensions I built — see the full series.