Why Blink and not Gecko?

  • It's what I'd want to know. Whenever I use a Blink-based browser I feel my life force sucked out of me 🤢

  • Thanks. A bit disappointing, but let's wait and see :whistle:

  • Its always going to be disappointing for someone. 😛

    But they had to make a choice. If you ask me, they probably made their research, positives and negatives of each one.

    If you do this, Gecko does not stand, both are excellent engines but Blink has advantages, in particular in speeds. It just performs amazingly well and fast. Second, Mozilla is going downhill, I mean the company and organization, they are losing market and they cannot get their stuff right in their company, so if I would bet for a future, Blink is better positioned now with Opera and Google working in the project and other companies as well, its not Google alone anymore. Several companies are in Blink. Also, they probably want to be in close in contact with the Opera team somehow, just my guess.

    But here is the biggest decision why they probably choose Blink and it's the same I would decide at the end of the day.

    Gecko is losing market for years now. Blink is gaining and fast. I'm not going to mention Webkit because Blink is basically still Webkit but in the mobile market Gecko is non existent. All traffic in the mobile world is basically optimized for Webkit, that is a bad thing actually but its how it is today, almost all mobile browsers and traffic is Webkit. If you count desktops, Safari, Chrome and Opera they also have the biggest computer market, same for tablets. Chances of having a problem in a website or webapp with Blink will be reduced to basically nothing and as Gecko is shrinking, developers will sadly not test or optimize their code so much for it anymore and so you are going to hit more problems with Gecko.

    At the end of the day its all about how websites perform and I think this is the main reason they went with Blink.

  • While Chrome and kin, use more memory per tab - it seems to actually release that memory. Firefox on the other-hand - while initially using less memory per tab, eventually will cripple itself –- and does NOT release the memory ... even if you close every single tab.

    After a while, with lots of tabs loaded, FF will not let your CPU drop below 40%+ usage. And when the memory usage climbs to an excess of ~2.5Gigs or so, the whole browser crawls to a near halt.

    For instance, I have 16 tabs open in Firefox, it is using 1100 MB of Ram. Lets close those tabs. We open a new window for FF, with an about:blank tab. And close all other 16 tabs. After the CPU spikes to nearly 40%+ on a quad-core, and after a few minutes when CPU usage drops down to 0-1%...
    FireFox is still using 975MB of Ram.
    Lets open those tabs up again, restoring the Session. CPU usage spikes, then back to ~1100MB.
    Lets close those tabs again. CPU usage spikes, then back down to 980MB.

    OPERA 12 TEST:
    Open the same tabs in Opera, ~1080MB of Ram, fairly comparable really. Now for the good part.
    Open one more Opera window with a Speed Dial tab, and close the other window with 16 tabs.
    The CPU usage does NOT spike, and memory usage drops to 368MB.

    I uninstalled Opera-Dev yesterday, after noticing it launching itself as a background process to download updates to C:\Users\X\Local\Temp, so I can't test it in "Opera-Blink" or Chrome atm. But just for giggles, lets test it in Vivaldi!

    1384MB - as per vivaldi://memory-redirect, we close the window with 16 tabs, and leave the vivaldi://memory-redirect open.
    Memory usage drops down to 279MB.

    I use FF for its Tabs-Management and customization but lets be honest, it is entirely a piece of shit.
    No other browser hoards memory like FireFox does. Even if you go to about:memory, and do garbage collection, and cycle collection, and minimize memory use, it has almost no effect whatsoever.

    I doubt this problem will ever be fixed, the FF devs claim there is no memory issue.

    Would you want to base a new browser on that code-base?

    Jón S. von Tetzchner was extremely polite when interviewed about why he went with Blink instead of Gecko, and said "it has less users". I'm pretty sure that wasn't the reason 🙂

  • Firefox has that problem with memory for years and it will not get easily fixed either.

    The reason why Chromium or IE don't have that problem is because they are sandboxed. IE was actually the first one starting with sandboxing tabs but Chrome managed to sandbox tabs completely from another. This means each tab is basically running its own browser and its own process, it's a program on its own, independent. The more you open the more process, and since each tab is running a full browser this why it takes more memory and some people complain Chrome uses way to much. But the benefit is exactly that. If you close one tab, you are closing the whole process. Its impossible to leak memory this way.

    Firefox only recently started to implement sandboxing and its on its infancy. This is why one tab can crash all your browser and all other tabs, something that can't possible happen with Chromium. You can crash a tab, but not others as they run their own independent process. I will not even start to mention how much more secure this is is. One hacked tab can't access information in the other.

    In a world where computers have so much RAM I don't think the more RAM per tab with Chrome is a problem at all. You would need to open a lot of tabs to consume a decent amount and once you close them, the ram is free again. With Firefox regardless of how you do it, after a few hours open the browser will be a RAM pig and the only solution is to completely close the browser and re-open it from scratch.

    If you leave it open, even when closing all other tabs, it will slowly start to build up memory and there is no way around it because its still working like the old days where browsers where running one single process.

  • Right, but Opera 12 is single threaded…(although JS has a separate process I think) a single tab can bring down O12 too --- but Opera 12 releases ram when you close tabs and FireFox does not. Opera has almost always outperformed FF. I'm pretty sure most long-time Opera users wouldn't of been caught dead running FireFox prior to O15, when Opera threw the community overboard and ignored all the outcries about so many missing features.

    It can't just be solely related to the Single-Thread issue. I have lots of programs that aren't multi-threaded, editors for example. When you close tabs in those, memory is released. There is a core problem with FF that wont be fixed with Electrolysis (e10s).
    They've been working on multi-threaded for ~5 years (2009), and 100+Million/year budget. Yet if you enable e10s today, it still breaks everything.
    Multi-Threading in Firefox (with e10s enabled):
    → UserCss: Broken
    → UserScript: Broken
    → TreeStyleTabs: Half broken.
    → RequestPolicy and its Kin (adBlock, noscript, etc): Broken
    → LastPass: Broken

    Nightly force enables e10s seemingly at random after some updates. Then you have to disable it and restart.

    I'm quite frankly amazed at what Jon's (tiny) team has done in the last year. Opera has had two years, and 10 times the man-power…

    I really hope Vivaldi considers a TreeStyleTab-like option for Tabs, as that's about the only thing keeping me on FireFox atm.

  • idk what others are talking about, as FF's (namely palemoon's) memory usage works almost flawlessly for me (closing a tab instantly drops memory usage). FF also uses way less resources than any webkit/blink based browsers (just try repeatedly open new tabs in Vivaldi. it will eventually lead to 100% CPU usage) and it is on par in most benchmarks nowadays (not like it matters). IMO a gecko based browser would be a lot more intresting as the blink market is already crowded.

  • @terere:

    While Chrome and kin, use more memory per tab - it seems to actually release that memory.

    While that is true for tab memory, it's a different story when it comes to the GPU process.
    I have had issues with both Opera and Chrome, where the GPU process takes up more than a gigabyte of memory alone. Closing all tabs does not help. I have to close and reopen the browser to get it down again.

    Disabling GPU rendering obviously fixes this issue.

  • @Crash:

    Right, but Opera 12 is single threaded…(although JS has a separate process I think)

    Opera is multi-threaded and single process(multiprocess if you take into consideration the separate plugin process)… If that wasn't the case every action would freeze other actions including the UI...
    Don't don't mix threads with processes.

    I don't like neither blink nor gecko(both have their quirks that piss me off)... so i don't relay care which engine they use... and i also understand that in the current situation it is rather impossible to create(in a reasonable time with the current man power) and maintain your own engine.

    I'm very curious how the mozilla servo will turn out. And i don't know... maybe sticking to mozilla and then jumping on the servo wagon would've been a better choice. Will find that out in a few years...

  • @era9:

    Opera is multi-threaded and single process(multiprocess if you take into consideration the separate plugin process)… If that wasn't the case every action would freeze other actions including the UI...
    Don't don't mix threads with processes.

    Opera 12 is indeed single-threaded. JS in a tab freezes another tab.
    But it also have ways to prevent it from freezing for too long. Opera seemed to pause JS shortly to allow tabs to render, scroll or other things. I saw a Chrome guy writing about how it was an interesting way of doing it (No link, sorry).

  • @Eske,
    Yeah…Opera's Smooth scroll that everyone pines for 🙂

    @Others, I was fairly detailed in how FF doesn't release memory. I also have been using it for the last year as my primary browser, I'm pretty sure I know how it needs to be restarted: as it wont drop CPU usage on a quad-core below 40-50%. And its memory wont go below 2.5/3GB (after some time). Open 16 or more tabs to various websites. Look at CPU/RAM usage in a Process Monitor, close those tabs. Look at CPU/RAM usage. Do the same in Vivaldi, do the same in Opera 12. Hell do the same in IE. Every browser except FF-variants release RAM when closing tabs.

    With the 64bit Nightly, and Waterfox, it doesn't even have the ~3GB limit, it will climb above that and CPU usage makes the whole computer crawl, not just FF ...

    And Yes I meant single process, not 'threading' as such. But Opera 12 v FF ---> JavaScript in FF locks up the browser, and does not in Opera. All extensions are JS in FF, and you need at least 6-12 addons to get close to O12's feature-set. I was probably thinking of how JS is single-threaded, like Python.

  • @Eske:

    Opera 12 is indeed single-threaded.

    …No opera is a multi-thread application, and tat is an indisputable fact. You can even check how many threads a process runs at a given time in process explorer for example.


    I was probably thinking of how JS is single-threaded, like Python.

    You can run multiple threads in python scripts - it's pretty easy actually.

  • Yes, but the way the Python stack works, means there are clear limitations to what you can do with a Python thread, without using multi process.
    Threading in Python

    As mentioned by Juergen Python threads cannot actually concurrently access state in the interpreter (there's one big lock, the infamous Global Interpreter Lock.) What that means in practice is that threads are useful for I/O bound tasks (networking, writing to disk, and so on), but not at all useful for doing concurrent computation.

  • @era9:

    …No opera is a multi-thread application, and tat is an indisputable fact.

    Well that depends on how you define single/multi-threaded. In the browser world, it does not mean that the browser application as a whole only use a single thread. Pretty much every application with a UI use more than one thread.
    When it comes to browsers, single-threaded usually means that all tabs share the same so called "Main thread". This is where rendering, JS and other stuff runs.


    You can even check how many threads a process runs at a given time in process explorer for example.

    Just to prove it, i started up Opera 12, and looked how many threads were used by the opera.exe process.
    8 threads on cold start. Still 8 threads when I opened 20 tabs. I even tried to reload all tabs at once, still 8 threads. This is what single-threaded means, when it comes to browsers.

  • Someone here is confusing multi threading with multi processing.

  • And going with Mozilla — we felt that fewer people were using it.

    I'm not a huge fan of any rendering engine, but that is a seriously poor reason. Isn't that nearly the same excuse Opera used to drop Presto?

  • Moderator

    It's the reason why Opera was forced to drop Presto. Too few people used it, so it was discriminated against by developers and could never attain 100% web compatibility. Enormous amounts of manpower were wasted trying to get web developers to test in it, to comply with standards, to develop keeping in mind the Opera existed and, since this was never entirely successful, making continual modifications to Opera to make it jump to hoops to properly display non-conforming sites.

    Vivaldi decided to use the engine that had, or would have, the highest usership, and would lead, rather than follow, on the subject of web standards.

  • Regardless of how you look at this subject, it's a little hypocritical that the founder of Vivaldi said that Opera should never have dropped Presto, and then he chooses which browser to fork based on market share…

  • Moderator

    So you're saying Jon still has a large corporation with hundreds of millions of dollars and hundreds of staff to build and maintain his browser? Or it's still 1993 when five hundred people are using the internet and basically anyone can write their own engine? What exactly is your point? That JSvT should ignore current realities and live in the past?

  • No, I understand that HTML/CSS/Javascript have grown to be a mess and it's way too much effort to write a rendering engine nowadays. What I am saying is that the rendering engine should have been chosen on the basis of technological merit and not market share. Which absolutely could have been Blink as well, but I disagree with the way that they chose it.

Log in to reply

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.