Betterfox mirrors the ongoing work provided by arkenfox. Additionally, this repository includes content reproduced or adapted from other sources. Credit for overlapping material goes to the original authors.
Appreciation goes to the Firefox team and developers working on Bugzilla, fighting for the open web.
This reads a lot like an ad. Can you explain where that 31% faster number comes from? I don't see many details in the linked article, and I also don't see why a user.js change should have any impact, much less >30%.
I just glanced over the options it changes. From what I can tell it:
enables GPU rendering for some canvas2d options
doubles cache sizes for almost everything
disables some speculative prefetching
I cant imagine these options are making a 30% speed difference, outside of some very specialized tests. But, I also haven't tried it so I could very well be wrong.
It's probably on specific hardware then. At least the last (disabling speculative prefetching) sounds like tuning to the benchmark, and it very well could be worse in real-world usage.
Mozilla cares a lot about performance. It is monitored obsessively and there are entire teams dedicated to squeezing out every last drop of performance. Heaven and earth would be moved for a 30% perf boost. I'm guessing either there's some very severe tradeoffs to these prefs, or setting them somehow breaks the methodology used to obtain this number.
Edit: also benchmarks can be notoriously misleading. I don't have any opinions or knowledge on basemark (the benchmark used to get this 30% number), but speedometer v3 is the most state of the art and generally agreed upon benchmark for performance these days.
That doesn't mean the 30% number is bogus.. Just that it should be followed by "...on basemark" rather than implying it's conclusive to overall performance.
Looking over the Fastfox.js config, it looks like most settings fall into one of three categories:
Subjective appearance of speed or responsiveness (perhaps at the expense of objectively-measurable load times)
Experimental options that don't apply to all hardware or OSes (e.g. GPU acceleration)
Settings that optimize performance at the expense of memory, CPU, or network usage (e.g. cache sizes and connection limits)
I don't see anything that makes me think Mozilla's defaults are unreasonable. It's not like Mozilla is leaving performance on the table, but rather that they chose a different compromise here and there, and use highly-compatible defaults. That said, it does seem like there is room for individual users to improve on the defaults — particularly if they have fast internet connections and lots of RAM.
For example:
// [NOTE] Lowering the interval will increase responsiveness
// but also increase the total load time.
user_pref("content.notify.interval", 100000); // (.10s); default=120000 (.12s)
This seems very much like a judgment call and I guess Firefox's defaults would actually have better objective load times and better benchmark scores. That doesn't mean it's objectively better, but it seems reasonable, at least.
// PREF: GPU-accelerated Canvas2D
// Use gpu-canvas instead of to skia-canvas.
// [WARNING] May cause issues on some Windows machines using integrated GPUs [2] [3]
// [NOTE] Higher values will use more memory.
Again, the defaults seem to make sense. Perhaps Mozilla could add an optimization wizard to detect appropriate settings for your hardware, and let the user select options like "maximize speed" vs "maximize memory efficiency". These are not one-size-fits-all settings.
Fastfox also disables a lot of prefetching options, which...seems counter to the goal of improving speed. Not really sure what to make of that.
Sure, just be aware that if you apply this without reading up on virtually every single option this changes, you'll soon be joining the legion of people that always post about how "Firefox uses so much memory at idle!" or "Firefox won't even render page xyz!" or "Firefox stutters like hell on pages with animations!" and so on.
Because there's a reason that the devs have not applied these to be the default. They don't come without any cost.
Sssh, don't tell the sheep that! Next you'll tell them about the earth's shape or the alien butt probes we all get implanted after birth in hospitals! Don't let them know!!
Even assuming they did make development decisions to benefit advertising partners, how on earth would choosing not to optimize performance actually benefit them?