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.

  • @rockSlayer
    link
    107
    edit-2
    1 year ago

    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.

    • @fubo
      link
      401 year ago

      interpreting JavaScript

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

      • @rockSlayer
        link
        141 year ago

        Fair. Webassembly is fast for a reason

          • @rockSlayer
            link
            11 year ago

            Kinda. The other person was right about JS basically getting compiled. Webassembly is like an intermediary language that executes at a similar speed to flash, because it’s more directly translatable to the runtime. Webassembly isn’t supposed to fill the gaps left by flash, but I think it’s a great option to get similar web apps

      • @KISSmyOS
        link
        1
        edit-2
        11 months ago

        deleted by creator

    • illectrilityOP
      link
      31 year ago

      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

      • @rockSlayer
        link
        221 year ago

        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.

        • illectrilityOP
          link
          3
          edit-2
          1 year ago

          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.

          • @rockSlayer
            link
            14
            edit-2
            1 year ago

            Caching is separate. Honestly, I don’t know how to explain it to you without giving you a college level explanation of time complexity.

            Think about the most basic way to sort a list of arbitrary size; comparing the first item to the second item, swapping if the second item is smaller, and then repeating until no more swaps occur. This has a time complexity of O(n^2), so on a list of n size, it would be extremely cheap on memory (O(1)) but will take a very long time if n is large.

            There’s another sorting algorithm called quicksort that is much faster (how it works isn’t very important atm), with a time complexity of O(nlog n). This is far faster than the other method of sorting, but it comes at the cost of needing a lot more memory to execute the algorithm, O(log n) of space.

            If you scale this simple process to a multithreaded piece of software executing thousands of algorithms per second, like a browser, the size of n scales to the rest of the app. Browsers are generally written in C++, which requires memory to be preallocated. The size of the app includes this memory requirement, as well as the executable.

            • illectrilityOP
              link
              41 year ago

              I understand, my confusion was caused by the misleading app size shown in App Info. It’s actually like 70MB so my question is dumb. I’m sorry for wasting your time

              • @rockSlayer
                link
                91 year ago

                it’s not dumb, and you didn’t waste my time! I love teaching computer science to people. Honestly, this was kinda fun. I haven’t consciously thought about these concepts in about 6 years, so it was a good refresher for me too lol

                • illectrilityOP
                  link
                  81 year ago

                  I’m glad to hear that, I had fun, too. Thank you for your time and have an amazing day, kind stranger

            • @[email protected]
              link
              fedilink
              21 year ago

              One time I had a database migration running on a database of about 50gb. After eight hours it was still going.

              My client had the suggestion to try bumping up the memory on the server. So (in digital ocean) I scaled a server from 8gb memory to 64gb, and ran the same migration. It took about twenty seconds. Then just scaled the server back down.

              It’s kinda amazing just how significant efficiency differences can be between strategies. In most realms a 10% improvement is huge. In software a 1000000000% improvement can result from choosing a new strategy.

        • @[email protected]
          link
          fedilink
          31 year ago

          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).

  • Hugging Stars
    link
    fedilink
    321 year ago

    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.

      • @[email protected]
        link
        fedilink
        English
        11 year ago

        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.

  • @the_q
    link
    19
    edit-2
    9 months ago

    deleted by creator

    • @[email protected]
      link
      fedilink
      26
      edit-2
      1 year ago

      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.

    • zero_iq
      link
      fedilink
      81 year ago

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

      • @the_q
        link
        3
        edit-2
        9 months ago

        deleted by creator

        • zero_iq
          link
          fedilink
          61 year ago

          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!

  • Never_Sm1le
    link
    fedilink
    English
    191 year ago

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

    • illectrilityOP
      link
      0
      edit-2
      1 year ago

      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.

      • @[email protected]
        link
        fedilink
        151 year ago

        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…

        • illectrilityOP
          link
          21 year ago

          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

          • @[email protected]
            link
            fedilink
            51 year ago

            Here on LineageOS, WebView only shows up in the app list, if I tell it to “Show System”…

            On some Android distributions, there is a user-visible WebView-app, which contains an updater, but I imagine, that’s actually a separate package which just updates the system’s WebView package.

            And I imagine, that updater-app is optional. At the very least, WebView is clearly installed on my OS and my launcher doesn’t show a WebView app…

            • illectrilityOP
              link
              31 year ago

              You’re absolutely right, I see it now, too. Thanks!

          • Ghoelian
            link
            fedilink
            41 year ago

            Fyi the size of the repo doesn’t really matter. The source code gets compiled down and optimised to machine readable code, which is usually much smaller. So that 12mb could still be correct, for the compiled app.

  • @[email protected]
    link
    fedilink
    161 year ago

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

    • @PM_ME_YOUR_SNDCLOUD
      link
      111 year ago

      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.

      • @[email protected]
        link
        fedilink
        01 year ago

        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.

    • @ignism
      link
      21 year ago

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

      • @[email protected]
        link
        fedilink
        English
        11 year ago

        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.

  • Fleppensteyn
    link
    fedilink
    151 year ago

    Browsers will grow with cache and settings etc.

    I’m more curious about mobile apps in general. I had to install Microsoft Authenticator to log in to my work account and it costs 165 MB. It sucks because disk space is so limited

    • illectrilityOP
      link
      41 year ago

      165??? That’s insane, you may be better off with KeePassDX. It combines password managing and TOTP

      • Fleppensteyn
        link
        fedilink
        11 year ago

        Nah, I had my own authenticator (Aegis) until MS decided you can only use theirs

        • illectrilityOP
          link
          21 year ago

          Wait what? They force you to use their authenticator? How, when, what?

          • Fleppensteyn
            link
            fedilink
            31 year ago

            It started nagging I need to switch to Microsoft’s authenticator but it was skippable for a while until it wasn’t 🤷‍♂️. They apparently use their own method that other authenticators can’t imitate.

  • @[email protected]
    link
    fedilink
    91 year ago

    There are many browsers that just use Chromium Webview and add their 2 cents. Some Chromium-based ones dont, like Brave, Cromite, etc, as they mod the webengine themselves.

    Firefox basee Browsers all ship their engine included, as geckoview is not a webview poorly.

    • shiiiiiiiiiiiiiiiiit
      link
      fedilink
      4
      edit-2
      1 year ago

      Amazing, this looks like it’s a lightweight wrapper around Android System Webview. It reminds me of the abandoned Naked Browser. I’ll try it out.

      Edit: My password manager says no password fields detected. Anyone else got Via working with a password manager?

      • @[email protected]
        link
        fedilink
        11 year ago

        Yes and i don’t see any problems in that, it will be more secure bcz system webview automatically gets updated to mitigate vulnerability.

        • @[email protected]
          link
          fedilink
          11 year ago

          It’s just an unfair comparison. The Firefox app includes a whole browser engine while this one just uses an engine built into Android itself.

  • @[email protected]
    link
    fedilink
    English
    21 year ago

    Browsers are big. Some just loads webpage and renders with system webview so they don’t bundle their own browser engine