Why are so many mobile browsers at least 100, if not 200 megabytes in size? Even Firefox Focus which is supposed to be small and, you know, focussed is 85MB big.

The smallest browser I could find was the /e/ Foundation’s built-in browser for /e/OS. It’s 12MB.

It’s kind of between Firefox and Focus in terms of features so why are all other browsers so big? Is there a small version of Firefox for Android?

Edit: I just looked up the /e/ Browser repo on their GitLab and the browser appears to be bigger than the 12MB displayed in App Info. It’s about 70MB, so pretty comparable to the other browsers. I was so confused by the size difference but that’s cleared up now.

105 points
*

Browsers are highly complex pieces of software. I had the opportunity to talk about browser engines with a hardware engineer for the chrome browser at GDC a year ago. Browser engines have to have more security than your operating system, while also interpreting DNS calls, rendering html/css, and interpreting JavaScript.

A basic html renderer would be small, like maybe a couple megabytes. But it would have absolutely no security. On the Internet.

permalink
report
reply
40 points

interpreting JavaScript

Compiling, these days. The JS runtime is a beast.

permalink
report
parent
reply
14 points

Fair. Webassembly is fast for a reason

permalink
report
parent
reply
3 points

Because it eliminates unnecessaryspaces?

permalink
report
parent
reply
5 points

Web browsers are practically as complex as operating systems tbh

permalink
report
parent
reply
1 point

On my private laptop, the operating system’s only job is launching the web browser.

permalink
report
parent
reply
3 points

I am aware of the complexity of a modern browser. Still, 80+ megabytes for a simple browser like Focus seems excessive. Especially when the Bromite-based /e/OS browser can provide more functionality for an eighth of the size

permalink
report
parent
reply
22 points

When it comes to software, complexity usually means one of 2 things: time complexity or space complexity. They have an inverse relationship, so if you want something fast you need more memory, and vice versa. In regards to browsers, that means either waiting forever to execute each op or using large amounts of storage/memory.

permalink
report
parent
reply
3 points

Don’t forget developmental complexity. The real limited resource is developer brain power which is the primary (and legit) reason for most failures to optimize algorithms.

Sometimes the most optimized solution requires a developer with enormous working memory, who can write code nobody else on the team can follow.

I worked on an app as a subcontractor once and this guy had functions generating functions to generate functions. It worked, and it was parsimonious in a way. Like he was optimizing for the bundle size and it was pretty impressive, but I simply couldn’t get anything done because the way it was structured required me to hold like 12 chunks of info in my 7-chunk working memory.

I eventually got some progress but only after I had transferred a significant amount of the code into my long-term memory. (As an autistic my working memory was shit growing up so I learned to use my long term procedural memory as a stand-in for short term memory. Problem is it’s a brittle strategy, doesn’t respond to changes well, and is highly sensitive to what kinds of patterns are used).

permalink
report
parent
reply
3 points
*

Yeah, of course a lot is cached and stored in user data but I don’t get why the app itself has to be so big. It’s not significantly faster.

Edit: Never mind all that, I edited the post, the app size wasn’t correctly shown.

permalink
report
parent
reply
31 points

All complete browsers are big. The small ones typically don’t have their own engine built-in.

iOS browsers all use Safari’s WebKit as their engine, so they’ll probably be smaller than their Android counterparts.

permalink
report
reply
1 point

So webkit is used as a system library? Not bundled in?

permalink
report
parent
reply
1 point

No it’s worse than that. All iOS browsers need to use a Safari (WebKit) web view as far as I understand. So any browser on iOS is literally just barebones Safari with a different UI and possibly a different user agent.

In fact, until recently this was even worse as Safari on iOS enjoyed some accelerations/optimizations that the web views did not get to leverage; so for a while all iOS browsers were not only Safari, but they were slower Safari.

permalink
report
parent
reply
19 points

I don’t think that /e/ even a “browser”, more like “webview viewer”

permalink
report
reply
0 points
*

It does pretty much everything a browser like Firefox, Focus, Mull, etc would do so I think it’s fair to call it a browser.

Also, the Android System WebView package is not installed on /e/OS

Edit: Yeah, never mind all that. The browser’s size isn’t shown correctly and some kind of WebView is installed so it may use that. The repo is about 70MB which makes far more sense.

permalink
report
parent
reply
15 points

Also, the Android System WebView package is not installed on /e/OS

It doesn’t have to be visible to you. You would have to check with ADB to actually know that it’s not installed.
And I don’t think Android without WebView is a thing. Many apps depend on it…

permalink
report
parent
reply
2 points

It shows up as an installable app. Although, I just checked the repo of the /e/ browser and it is probably bigger than it appears to be in App Info. I’ll edit the post rq

permalink
report
parent
reply
18 points

100mb isn’t that big these days, bud.

permalink
report
reply
26 points
*

But it should be.

Better technology and more storage should never excuse a lack of optimization.

I’m not up to speed on the optimization levels of mobile Web browsers, but these days you rarely see properly optimized consumer software. Games and websites tend to be the worst offenders, and many mobile apps appear 10x the size you would expect them to be.

permalink
report
parent
reply
4 points

Imagine the utopia we would live in if every website was as beautiful as this https://perfectmotherfuckingwebsite.com/

permalink
report
parent
reply
8 points

True, but I’d still like to see the explanation for why a mouse driver needs to be 300MB…!

permalink
report
parent
reply
3 points

Rgb.

permalink
report
parent
reply
6 points

Ah, of course! And it does have extra buttons too. Remarkable they squeezed all that advanced engineering in under half a gigabyte, tbh. I clearly didn’t think it through!

permalink
report
parent
reply
16 points

Dude, you should see webpages… if it’s built using react a website can easily clock in at half a gig.

permalink
report
reply
11 points

You’re not wrong but it feels disingenuous to say this. The entire repo with all of its dependencies checked out for a large website can easily clock at half a gig but there’s no popular website now that’s asking any users to download half a gig worth of stuff before they can use it.

There ARE websites where, if you keep them open long enough, they’ll constantly pull more and more data (usually for ads) but even that is measured more so in tens of megabytes.

And none of this is to say that websites haven’t gotten too big, just that comparing a downloaded app’s size to the size of a website’s unbuilt unbundled source with all of its dependencies is an unfair comparison.

permalink
report
parent
reply
0 points

I think he was saying half a gig as in people ask you to build them a react site for about half of what you’d earn by bringing them a chipotle burrito as a dasher.

permalink
report
parent
reply
2 points

I am not sure you know what you are talking about. How is react the factor here of making it 500 MB?

permalink
report
parent
reply
1 point

People like to hate on React these days… don’t read into it too much. As always, it’s the person wielding the tool, not the tool’s fault.

permalink
report
parent
reply

Asklemmy

!asklemmy@lemmy.ml

Create post

A loosely moderated place to ask open-ended questions

Search asklemmy 🔍

If your post meets the following criteria, it’s welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

Icon by @Double_A@discuss.tchncs.de

Community stats

  • 10K

    Monthly active users

  • 5.9K

    Posts

  • 319K

    Comments