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:
- Open about:performance — this shows CPU and memory usage by page and extension
- Find which extension is using most resources
- 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.
