Re:Firefox Damage Control Is More Than Enough
on
Chrome Vs. IE 8
·
· Score: 1
Since Windows doesn't have fork or window reparenting (well, it might, but I've not come across it), they probably need some quite clever work-arounds for it.
For all intents and purposes Windows has both. It's just not called the same things. In fact, from what I'm reading, IE8 and Chrome are very similar, in their architecture. Wonder if the teams have been talking.
But yeah, windows can do child processes with copy-on-write and shared memory for the image and libraries.
main reason for implementing on Windows first was obviously the market share, but I wouldn't be surprised if the secondary reason was that Windows was the hardest platform to get to support the features they wanted, so porting from Windows would be a lot easier than porting to it.
Another interesting thing they're doing is using the process isolation and low-integrity tagging from Vista.
They're basically running Chrome in the same low-integrity sandbox that IE7 runs on in Vista.
This stuff really makes me wonder how much the google team interacted with the MS IE team.
But yeah, market share number 1. Also sounds like they had at least one person on the team who is very good at windows app development.
Re:Read the EULA
on
Chrome Vs. IE 8
·
· Score: 2, Informative
They already responded to this and will be taking this out. Its on arstechnica.
Their lawyers do what nearly all businesses do and re-use legal agreements like EULAs.
So they had a standard one and they used it. No one but a lawyer looked at it in detail, and the lawyer likes those nasty terms.
Anyway, I'm speculating. But they've publicly announced that its an oversight and they'll re-write it to remove that.
Re:Security improvements?
on
Chrome Vs. IE 8
·
· Score: 3, Informative
Could you not be bothered to read the links you posted?
The first one is not a security exploit. It's at most a DoS since it causes the app to crash.
The second one is an old/known vulnerability in webkit. Of course they inherited it. It's exactly the same problem called the 'carpet bombing vulnerability' in Safari, which also uses webkit.
Re:Has technology gone mainstream?
on
Chrome Vs. IE 8
·
· Score: 1
I would argue that there are deeper implications.
There's a couple long term trends going on in the industry.
Multi-cores are growing like crazy, while the ability to do quality multi-threaded code is advancing very slowly.
However, multi-process development is simple, well understood, and scales VERY well across many cores. Operating Systems are good at balancing many processes across many cores.
This is a smart long term play by Google, and representative of where the smart folks may end up going. Unless something revolutionary happens, typical multi-threaded apps are not as sexy as multi-process apps.
I think we may see a swing more towards apps structured like these in the future.
Interestingly enough, IE8 is (by everything I've read so far) architected almost exactly the same as chrome. I dont know who hit it first, or if both teams have been talking. But its fascinating to watch.
Re:In a consumer market that's headed toward mobil
on
Chrome Vs. IE 8
·
· Score: 2, Interesting
The 'consumer market' isnt headed towards mobile devices.
The 'consumer home desktop market' is growing like crazy. The 'business desktop market' is growing.
The 'consumer mobility market' is growing like gangbusters.
It's not a zero-sum situation. There's room for both.
Chrome in particular, is for a nice that is not very appropriate for mobile devices, and thats for long-running web-applications. Not web sites, but web apps like banking, webmail, slashdot, flex apps, etc.
You're misunderstanding the memory usage characteristics of a multi-process application such as chrome, compared to a multi-threaded application like FireFox.
While an app like Chrome will tend to have higher peak memory usage, it will also have much lower minimum usage. Thats because it can effectively release memory, due to its architecture. Firefox cant.
So open up 35 tabs of slashdot comments and gamil in both FF and Chrome.
Chrome will be higher, probably by quite a bit.
Now close 30 of those tabs.
Firefox will drop memory usage from maybe half of peak (so still quite high).
Chrome will drop down to almost nothing.
The google folks are making a classic time/space tradeoff, except they're trading off space for reliability and 'good neighbor' memory characteristics, rather than raw execution speed.
I think you'll find, that for machines that run the web browser for extended periods of time, Chrome will be much more friendly on average across the duration than FF will.
The problem here is that there's no common way to tell a program to free some cache. Suppose Firefox sucks down 1.5 gigs of your 2 gigs of RAM, because it was sitting unused. How does Firefox know, then, when you launch WoW, that you want a gig or so of that back? Is there a way it can know before it starts getting pushed out to swap space (or the Windows pagefile)?
Yes, there is. Many pieces of software on windows do this.
But let's start there, at least, with the RAM usage -- honestly, rendering a page doesn't take so long that it'd bother you, if that's all it needed to do when you came back from your hypothetical WoW session.
Hey, its possible you're right and that your take of tradeoffs may be well accepted by the market. Go start a browser and see.
However, I'd be willing to bet money that you'll fail.
The vast, vast, vast majority of web browser users are running on single user machines that do web browsing, email and maybe one or two others things. In that case, the web browser will often be one of the primary users of system memory.
I think you grossly misunderstand the tradeoffs and performance implications of a web browser on what you're talking about.
If it was that simple, and that was what the market wanted, then IE and FireFox wouldnt be the most used browsers. Even the linux folks use Firefox primarily. And Firefox is a horrifically leaky, memory gobbling application.
You've never shared an account on a busy Unix server, have you? Nothing teaches politeness like having the admin nuke one's process three days into a five day run because it uses too much memory
Thats not a common use case for a GUI browser. Thats not the typical case for using Chrome.
You dont optimize a piece of software for one rare use case, at the expense of the common use case, except in very specific situations.
The one you mention isnt one of those. The correct solution to that is to not let users run X on a shared machine, or to put memory quotas on users (for those unices that can).
Lastly, if you're running critical 5-day jobs on the same machine where people are browsing porn or slashdot on a browser, particularly where you have limited memory, then you're mis-using the machine. Kick the web browsers off to a desktop.
That still doesn't justify grabbing extra memory just because nobody else is using it, which I think is your point, no?
Actually, on a single user desktop, which comprises probably 90%+ of the population use, that IS justified, as long as its willing to release memory when other memory pressures happen.
What if you want to run several programs at the same time, and the first program grabs all it can to start with?
Then the first program gets some memory paged out when the second one starts demanding memory. You should know this, its how all modern OS's do memory management.
Many apps are even smart, and will reduce the size of their caches when that happens, effective reducing their total memory usage.
What if you log in an hour before someone else and your browser grabs all the memory it can already?
Then as other apps demand memoryk, the first program gets paged out. You should know this, its how all modern OS's do memory management.
Many apps are even smart, and will reduce the size of their caches when that happens, effective reducing their total memory usage.
Your idea only makes sense if your PC's single most important task is giving you a great browsing experience
This exact case is probably going to account for 95% or better of the actual use of Chrome.
which might be the case for you but is no way to do software engineering.
Good software engineering does NOT mean doing premature optimizations for a rare case scenario either, at the expense of every other use case.
Good software engineering means understanding the usage scenarios well enough to make intelligent tradeoffs. This tradeoff may indeed mean assuming a single user desktop machine. It may not. Your success or failure in the market will indicate how well you made your tradeoff choices.
There's no such thing as one perfect definition of what a program 'needs'.
It's all conditional, situational, and its always a tradeoff.
Also, dont forget that while Chrome will use more peak memory, it will also be MUCH more effective at giving all of the memory back to the OS when a tab or window is closed.
Firefox and other single-process browsers are very bad at that, FF in particular is terrible.
So its arguable that Chrome is more friendly to other apps in memory usage over the long haul, despite a potential high peak usage.
Low-memory leaking programs are worse than high-memory-use programs that dont leak.
If you believe their comic book that the memory is separate, that means the images and most resources for a page are also separate. So when you have ten tabs of the same site then you have multiple copies of the same images in memory (page header, favicons, etc).
Yes and No. Processes are forked using copy-on-write, with shared memory between parent and child processes.
Process data is different, process image (for the most part) isnt.
So yes, 10 copies of the same page will have lots of duplicate data. But thats not a common case. The common case, where 10 tabs have all different page, its no different memory situation.
It's also possible they're doing some smart optimizations for duplicate pages, particularly if the duplicate tabs are in the same parent process.
Chrome's isolation approach (in contrast to IE8) is like a microkernel... fault tolerant, but with a LOT of resource overhead and programmer overhead (communicating, coordinating settings between main process and tab processes).
Everything I've seen and read, IE8 and Chrome are strikingly similar in their architecture. Surprisingly so, in fact.
The trade-offs for multi-process vs. multi-threading are well known. I would strongly argue that they made the right architecture choice for 3-5 years from now. Whereas FF in its 1-process only will become harder and harder.
Multi-threading can be fast at best, but is hideously complicated to do well with large amounts of threads and shared memory. It's incredibly error prone, from the programmers point of view.
Multi-processing is much simpler to write, but is slower in IPC and forking (the latter especially on windows). But its also much simpler to write simple, low-bug code, and make the system reliable over a long term.
It's also quite arguable that the performance hits from an IPC based system are not relevant in an app like a browser.
So ultimately you're going to be disappointed with Chrome if you're looking for performance. If you want fault tolerance, sure
Depends what you mean by performance. Chrome will have a higher peak memory usage (in typical scenarios) but will likely have much better memory behavior over the long term, as many tabs and pages are opened and closed. The multi-process approach fundamentally leads to simpler and more effective memory management.
but in general a failure that crashes the browser can be exploited. Loosing your email is kind of trivial compared to having a bot ruin your system, so the best is just not to crash (iow, write as much of the browser in possible in javascript).
I think you're misunderstanding a couple things here, at least with Chrome on windows.
1. Chrome runs with the same sandbox and process isolation (ie, less rights than a non-admin user) as IE7 and IE8 on Vista. Just this makes it much more resilient than FF would be, as FF runs as your user, so anything that penetrates the browser barrier has the same perms as you. Something that penetrates the Chrome barrier doesnt even have write access to your profile, much less to the system.
2. Chrome's architecture, once it gets out of beta, is going to make it MUCH less prone to crashing than FF. It's a fundamentally more robust architecture. Plus, the coding is simpler in that architecture, so its easier for the devs to make more stable code. It's a win-win, other than peak memory usage, and IPC related speed issues.
3. Writing the browser in JavaScript wont make something less prone to crashing. JavaScript execution is inherently attackable, as is anything that results in code generation, JIT'ing, etc behind the scene. The recent set of attack techniques that use predictable stack and heap allocation techniques (the ones that attack far past the initial entry points) rely heavily on Java,.NET and JavaScript type of engines to work.
Although I hate to feed the cowards, thanks for posting this. Had some information that was new to me.
Re:Google Chrome HDD and CPU Usage
on
Chrome Vs. IE 8
·
· Score: 1
I actually havent seen that, but I havent had Chrome for long.:)
Is it possible you've run out of memory and have pushed your system into paging?
Re:Firefox Damage Control Is More Than Enough
on
Chrome Vs. IE 8
·
· Score: 1
And sorry for the double response, but....
And, by the way: WTF!?! 38 tabs open!?! You get what you deserve with that number of tabs. That's crazy sh*t man!
I know it sounds crazy, but you know what? Current gen OS's and most software is quite robust.
I often leave MySQL and Mongrel running for days, across many standby/hibernates (I'm on a laptop). Along with flaky stuff like Access projects (legacy stuff). I cant do that with Eclipse, because Eclipse leaks badly.
But I leave TONS of crap running on my machine for weeks (until super tuesday from MS every month usually).
And you know what? It works great. This machine is a high-end HP engineering laptop (Compaq 8710w) running Vista Business x64. It's got a 2.4C2D, 4GB of memory, fast HDD and high end Quadro graphics.
And it just goes and goes and goes. I can leave firefox open for days or even a week at a time before it gets flaky, even with 38 tabs and it consuming half a GB of memory. Same for opera. And thats with Outlook (for work mail), Thunderbird (for imap stuff), pidgin, and a bunch of little stuff.
It all works so well, I just leave everything running quite often, and go into standby. Then I restart somewhere else, and can continue where I left off working in seconds. It's amazingly powerful and productive.
And you didnt use to be able to do this. Laptops just werent stable over weeks with tons of standby/hibernate usage and leaving tons of stuff running.
But nowadays it does. I'll even say something that is heresy on slashdot. This machine lasts longer than XP did, before needing rebooted. But its a high-end device, with all high end, well supported hardware that has current 64-bit drivers.
But nowadays, even on windows, even on vista, systems are just quite robust, if you stay away from the low-end consumer stuff and build the OS yourself, or get an ad-ware free build.
So thats my long explanation of 38 tabs. Because I can. Because computing has finally gotten to the point where even on a laptop, I can just go into standby with a million things running, walk away, and come back 2 hours later and start right where I left off.
And I can do that for weeks at a time or longer, and the machine (mostly) just keeps on chugging.
Re:Firefox Damage Control Is More Than Enough
on
Chrome Vs. IE 8
·
· Score: 1
Copied from my response to Stooshie above....
Yeah, I shouldnt have mentioned the Chrome stuff at all.
My goal wasnt to compare with Chrome, but to show the relative crappiness of FF3 vs. Opera with a large amount of tabs open and having been run for several days.
I fully expect Chrome to consume more memory at peak than single-process browsers like FF3 and Opera, but I also expect it to release memory MUCH more effeciently and in generally behave better over the course of days or weeks without shutting it down, and with large amounts of tabs.
But yes, I should have not reported Chrome. That wasnt relevant to the point I was trying to make (FF3 vs. Opera).
Re:Firefox Damage Control Is More Than Enough
on
Chrome Vs. IE 8
·
· Score: 1
Yeah, I shouldnt have mentioned the Chrome stuff at all.
My goal wasnt to compare with Chrome, but to show the relative crappiness of FF3 vs. Opera with a large amount of tabs open and having been run for several days.
I fully expect Chrome to consume more memory at peak than single-process browsers like FF3 and Opera, but I also expect it to release memory MUCH more effeciently and in generally behave better over the course of days or weeks without shutting it down, and with large amounts of tabs.
But yes, I should have not reported Chrome. That wasnt relevant to the point I was trying to make (FF3 vs. Opera).
Re:These articles still don't answer my question
on
Chrome Vs. IE 8
·
· Score: 2, Insightful
How does FF extensions do the following:
- multi-processed architecture, rather than the ancient one-process-for-everything philosophy of FF?
- plugins running in separate processes
- stop leaking memory like a sieve, even on FF3
- run in low-priv sandbox on Vista
I hate to join the hype here, especially over a product so beta.
But the google folks have, IMO, the right idea of where browsers need to be in 3-5 years. MS is doing the same.
Firefox's old architecture is starting to show.
I dont know where Opera will fit into wrt mult-threadede vs. multi-process. But Opera is a better product right now than FF3 is, so they've got a head start.
You do realize that ACID isnt an actual conformance test of any standard, right?
It's something that 'some guys' put together, and seemed reasonable enough (in a world with no reference implementation or conformance tests) that its gotten some mind share.
In addition, Acid2 is a much better representation of things actual web designers will do. Acid3 is a little out there, IMO.
And dont forget the phenomenon of browsers being optimized to Acid test, rather than actual real-world usage. Similar to what happened in the graphics card world. Companies optimized for the specific tests used by reviewers, rather than real world use.
Re:Firefox Damage Control Is More Than Enough
on
Chrome Vs. IE 8
·
· Score: 1
Really? Just what do you want from a browser? All I care to use is Adblock and Flashblock. The whole point of a browser is to provide as minimal an obstruction between the content you're viewing and yourself as possible.
TaxMixPlus with a ton of configuration as a bare minimum. The built-in tab behavior and session management of FF is fundamentally broken, in my opinion.
I would disagree with your second sentence. The browser not only has to display content, but has to help me manage that contents organization, history, and display.
If I had 38 tabs open, I would regard that as a good time to close the browser and start again. I just don't need that amount of clutter. Even on my desktop system, with its dual-screen Xinerama arrangement, it is impossible to keep track of much more then 15 tabs per screenful.
Basically, I use tabs and session memory instead of bookmarks, and for stuff not in an open tab, I just rely on the auto-complete history in the title bar. It's weird when I write it out, but thats the path of least resistence for me.
For example, I've got 5 tabs open semi-permanently for various Ruby and Rails API and documentation pages.
In my opera, I leave stuff there that I want to come back to later, sometimes many months later.
Firefox right now had 3 rows of tabs, but I'm also running 1920x1080 in a 17" laptop screen. It's not really big enough for that resolution and my eyesight, but browser zoome is my friend.:)
Opera strangely enough deals with many tabs much better, and I can get up to 40+ (a guess, I havent counted specifically) in one row in opera before it gets unusable.
Re:We need to go in the other direction
on
Chrome Vs. IE 8
·
· Score: 1
even when you maximize the browser they don't touch the screen edge
They do on my box, Vista Business x64.
Only when the browser window is non-maximized do they not stretch to the top of the window.
Re:Since when does Bloat == Performance!?
on
Chrome Vs. IE 8
·
· Score: 1
I hate feeding cowards, but come on.
How about stop using the emotionally laden and inaccurate word 'bloat' and just use 'space'.
Then go google for 'time/space tradeoff'.
In the specific case of Chrome, they're doing a reliability&security/space tradeoff.
Does anyone still use those? I havent since the Netscape days.
I just leave the tab open forever. I had tabs on previous laptop in Opera that had been there for almost 2 years.
Just seems simpler that way.
Re:Firefox Damage Control Is More Than Enough
on
Chrome Vs. IE 8
·
· Score: 2, Interesting
* Firefox is much better in 3.x; at least in OS X, it's a fairly solid theme (not without its quirks, but there you go).
I agree with you there. I'm still not a big fan, but FF3 is much better than FF2 was.
I wish I could find better words for it, but FF has just always looked so... unsophisticated, I guess is the word. Or close to it.
Safari, IE and Opera all have quite a bit of 'polish' to them, and the graphics/icons done very well. And that aspect seems (to me) to transcend personal taste. But thats just my POV.
Actually windows is the preferred platform for many engineering usages.
Ever since XP-64.
The systems are faster, cheaper and they can run word, excel and outlook.
Windows has been a great platform for large-memory engineering usage for many years, due to the availability of XP-64 and OEM's like HP who make stable supported systems for XP-64.
Since Windows doesn't have fork or window reparenting (well, it might, but I've not come across it), they probably need some quite clever work-arounds for it.
For all intents and purposes Windows has both. It's just not called the same things. In fact, from what I'm reading, IE8 and Chrome are very similar, in their architecture. Wonder if the teams have been talking.
But yeah, windows can do child processes with copy-on-write and shared memory for the image and libraries.
main reason for implementing on Windows first was obviously the market share, but I wouldn't be surprised if the secondary reason was that Windows was the hardest platform to get to support the features they wanted, so porting from Windows would be a lot easier than porting to it.
Another interesting thing they're doing is using the process isolation and low-integrity tagging from Vista.
They're basically running Chrome in the same low-integrity sandbox that IE7 runs on in Vista.
This stuff really makes me wonder how much the google team interacted with the MS IE team.
But yeah, market share number 1. Also sounds like they had at least one person on the team who is very good at windows app development.
They already responded to this and will be taking this out. Its on arstechnica.
Their lawyers do what nearly all businesses do and re-use legal agreements like EULAs.
So they had a standard one and they used it. No one but a lawyer looked at it in detail, and the lawyer likes those nasty terms.
Anyway, I'm speculating. But they've publicly announced that its an oversight and they'll re-write it to remove that.
Could you not be bothered to read the links you posted?
The first one is not a security exploit. It's at most a DoS since it causes the app to crash.
The second one is an old/known vulnerability in webkit. Of course they inherited it. It's exactly the same problem called the 'carpet bombing vulnerability' in Safari, which also uses webkit.
I would argue that there are deeper implications.
There's a couple long term trends going on in the industry.
Multi-cores are growing like crazy, while the ability to do quality multi-threaded code is advancing very slowly.
However, multi-process development is simple, well understood, and scales VERY well across many cores. Operating Systems are good at balancing many processes across many cores.
This is a smart long term play by Google, and representative of where the smart folks may end up going. Unless something revolutionary happens, typical multi-threaded apps are not as sexy as multi-process apps.
I think we may see a swing more towards apps structured like these in the future.
Interestingly enough, IE8 is (by everything I've read so far) architected almost exactly the same as chrome. I dont know who hit it first, or if both teams have been talking. But its fascinating to watch.
The 'consumer market' isnt headed towards mobile devices.
The 'consumer home desktop market' is growing like crazy. The 'business desktop market' is growing.
The 'consumer mobility market' is growing like gangbusters.
It's not a zero-sum situation. There's room for both.
Chrome in particular, is for a nice that is not very appropriate for mobile devices, and thats for long-running web-applications. Not web sites, but web apps like banking, webmail, slashdot, flex apps, etc.
You're misunderstanding the memory usage characteristics of a multi-process application such as chrome, compared to a multi-threaded application like FireFox.
While an app like Chrome will tend to have higher peak memory usage, it will also have much lower minimum usage. Thats because it can effectively release memory, due to its architecture. Firefox cant.
So open up 35 tabs of slashdot comments and gamil in both FF and Chrome.
Chrome will be higher, probably by quite a bit.
Now close 30 of those tabs.
Firefox will drop memory usage from maybe half of peak (so still quite high).
Chrome will drop down to almost nothing.
The google folks are making a classic time/space tradeoff, except they're trading off space for reliability and 'good neighbor' memory characteristics, rather than raw execution speed.
I think you'll find, that for machines that run the web browser for extended periods of time, Chrome will be much more friendly on average across the duration than FF will.
Yeah, sure.
I'll get right on that after I win the lottery and develop a perpetual motion machine.
Good software development means trying to write solid code AND taking steps to mitigate failures when they happen.
Just blindly saying 'dont make mistakes' is silly. You try to not make mistakes AND you make the system robust to mistakes.
This is entry level CS stuff.
The problem here is that there's no common way to tell a program to free some cache. Suppose Firefox sucks down 1.5 gigs of your 2 gigs of RAM, because it was sitting unused. How does Firefox know, then, when you launch WoW, that you want a gig or so of that back? Is there a way it can know before it starts getting pushed out to swap space (or the Windows pagefile)?
Yes, there is. Many pieces of software on windows do this.
But let's start there, at least, with the RAM usage -- honestly, rendering a page doesn't take so long that it'd bother you, if that's all it needed to do when you came back from your hypothetical WoW session.
Hey, its possible you're right and that your take of tradeoffs may be well accepted by the market. Go start a browser and see.
However, I'd be willing to bet money that you'll fail.
The vast, vast, vast majority of web browser users are running on single user machines that do web browsing, email and maybe one or two others things. In that case, the web browser will often be one of the primary users of system memory.
I think you grossly misunderstand the tradeoffs and performance implications of a web browser on what you're talking about.
If it was that simple, and that was what the market wanted, then IE and FireFox wouldnt be the most used browsers. Even the linux folks use Firefox primarily. And Firefox is a horrifically leaky, memory gobbling application.
You've never shared an account on a busy Unix server, have you? Nothing teaches politeness like having the admin nuke one's process three days into a five day run because it uses too much memory
Thats not a common use case for a GUI browser. Thats not the typical case for using Chrome.
You dont optimize a piece of software for one rare use case, at the expense of the common use case, except in very specific situations.
The one you mention isnt one of those. The correct solution to that is to not let users run X on a shared machine, or to put memory quotas on users (for those unices that can).
Lastly, if you're running critical 5-day jobs on the same machine where people are browsing porn or slashdot on a browser, particularly where you have limited memory, then you're mis-using the machine. Kick the web browsers off to a desktop.
That still doesn't justify grabbing extra memory just because nobody else is using it, which I think is your point, no?
Actually, on a single user desktop, which comprises probably 90%+ of the population use, that IS justified, as long as its willing to release memory when other memory pressures happen.
What if you want to run several programs at the same time, and the first program grabs all it can to start with?
Then the first program gets some memory paged out when the second one starts demanding memory. You should know this, its how all modern OS's do memory management.
Many apps are even smart, and will reduce the size of their caches when that happens, effective reducing their total memory usage.
What if you log in an hour before someone else and your browser grabs all the memory it can already?
Then as other apps demand memoryk, the first program gets paged out. You should know this, its how all modern OS's do memory management.
Many apps are even smart, and will reduce the size of their caches when that happens, effective reducing their total memory usage.
Your idea only makes sense if your PC's single most important task is giving you a great browsing experience
This exact case is probably going to account for 95% or better of the actual use of Chrome.
which might be the case for you but is no way to do software engineering.
Good software engineering does NOT mean doing premature optimizations for a rare case scenario either, at the expense of every other use case.
Good software engineering means understanding the usage scenarios well enough to make intelligent tradeoffs. This tradeoff may indeed mean assuming a single user desktop machine. It may not. Your success or failure in the market will indicate how well you made your tradeoff choices.
There's no such thing as one perfect definition of what a program 'needs'.
It's all conditional, situational, and its always a tradeoff.
Also, dont forget that while Chrome will use more peak memory, it will also be MUCH more effective at giving all of the memory back to the OS when a tab or window is closed.
Firefox and other single-process browsers are very bad at that, FF in particular is terrible.
So its arguable that Chrome is more friendly to other apps in memory usage over the long haul, despite a potential high peak usage.
Low-memory leaking programs are worse than high-memory-use programs that dont leak.
If you believe their comic book that the memory is separate, that means the images and most resources for a page are also separate. So when you have ten tabs of the same site then you have multiple copies of the same images in memory (page header, favicons, etc).
Yes and No. Processes are forked using copy-on-write, with shared memory between parent and child processes.
Process data is different, process image (for the most part) isnt.
So yes, 10 copies of the same page will have lots of duplicate data. But thats not a common case. The common case, where 10 tabs have all different page, its no different memory situation.
It's also possible they're doing some smart optimizations for duplicate pages, particularly if the duplicate tabs are in the same parent process.
Chrome's isolation approach (in contrast to IE8) is like a microkernel... fault tolerant, but with a LOT of resource overhead and programmer overhead (communicating, coordinating settings between main process and tab processes).
Everything I've seen and read, IE8 and Chrome are strikingly similar in their architecture. Surprisingly so, in fact.
The trade-offs for multi-process vs. multi-threading are well known. I would strongly argue that they made the right architecture choice for 3-5 years from now. Whereas FF in its 1-process only will become harder and harder.
Multi-threading can be fast at best, but is hideously complicated to do well with large amounts of threads and shared memory. It's incredibly error prone, from the programmers point of view.
Multi-processing is much simpler to write, but is slower in IPC and forking (the latter especially on windows). But its also much simpler to write simple, low-bug code, and make the system reliable over a long term.
It's also quite arguable that the performance hits from an IPC based system are not relevant in an app like a browser.
So ultimately you're going to be disappointed with Chrome if you're looking for performance. If you want fault tolerance, sure
Depends what you mean by performance. Chrome will have a higher peak memory usage (in typical scenarios) but will likely have much better memory behavior over the long term, as many tabs and pages are opened and closed. The multi-process approach fundamentally leads to simpler and more effective memory management.
but in general a failure that crashes the browser can be exploited. Loosing your email is kind of trivial compared to having a bot ruin your system, so the best is just not to crash (iow, write as much of the browser in possible in javascript).
I think you're misunderstanding a couple things here, at least with Chrome on windows.
1. Chrome runs with the same sandbox and process isolation (ie, less rights than a non-admin user) as IE7 and IE8 on Vista. Just this makes it much more resilient than FF would be, as FF runs as your user, so anything that penetrates the browser barrier has the same perms as you. Something that penetrates the Chrome barrier doesnt even have write access to your profile, much less to the system.
2. Chrome's architecture, once it gets out of beta, is going to make it MUCH less prone to crashing than FF. It's a fundamentally more robust architecture. Plus, the coding is simpler in that architecture, so its easier for the devs to make more stable code. It's a win-win, other than peak memory usage, and IPC related speed issues.
3. Writing the browser in JavaScript wont make something less prone to crashing. JavaScript execution is inherently attackable, as is anything that results in code generation, JIT'ing, etc behind the scene. The recent set of attack techniques that use predictable stack and heap allocation techniques (the ones that attack far past the initial entry points) rely heavily on Java, .NET and JavaScript type of engines to work.
I'm not sure where you get that.
ALT+TAB'ing between the two, the only shared icon is the Reload icon.
Otherwise, they're all different.
Although I hate to feed the cowards, thanks for posting this. Had some information that was new to me.
I actually havent seen that, but I havent had Chrome for long. :)
Is it possible you've run out of memory and have pushed your system into paging?
And sorry for the double response, but ....
And, by the way: WTF!?! 38 tabs open!?! You get what you deserve with that number of tabs. That's crazy sh*t man!
I know it sounds crazy, but you know what? Current gen OS's and most software is quite robust.
I often leave MySQL and Mongrel running for days, across many standby/hibernates (I'm on a laptop). Along with flaky stuff like Access projects (legacy stuff). I cant do that with Eclipse, because Eclipse leaks badly.
But I leave TONS of crap running on my machine for weeks (until super tuesday from MS every month usually).
And you know what? It works great. This machine is a high-end HP engineering laptop (Compaq 8710w) running Vista Business x64. It's got a 2.4C2D, 4GB of memory, fast HDD and high end Quadro graphics.
And it just goes and goes and goes. I can leave firefox open for days or even a week at a time before it gets flaky, even with 38 tabs and it consuming half a GB of memory. Same for opera. And thats with Outlook (for work mail), Thunderbird (for imap stuff), pidgin, and a bunch of little stuff.
It all works so well, I just leave everything running quite often, and go into standby. Then I restart somewhere else, and can continue where I left off working in seconds. It's amazingly powerful and productive.
And you didnt use to be able to do this. Laptops just werent stable over weeks with tons of standby/hibernate usage and leaving tons of stuff running.
But nowadays it does. I'll even say something that is heresy on slashdot. This machine lasts longer than XP did, before needing rebooted. But its a high-end device, with all high end, well supported hardware that has current 64-bit drivers.
But nowadays, even on windows, even on vista, systems are just quite robust, if you stay away from the low-end consumer stuff and build the OS yourself, or get an ad-ware free build.
So thats my long explanation of 38 tabs. Because I can. Because computing has finally gotten to the point where even on a laptop, I can just go into standby with a million things running, walk away, and come back 2 hours later and start right where I left off.
And I can do that for weeks at a time or longer, and the machine (mostly) just keeps on chugging.
Copied from my response to Stooshie above ....
Yeah, I shouldnt have mentioned the Chrome stuff at all.
My goal wasnt to compare with Chrome, but to show the relative crappiness of FF3 vs. Opera with a large amount of tabs open and having been run for several days.
I fully expect Chrome to consume more memory at peak than single-process browsers like FF3 and Opera, but I also expect it to release memory MUCH more effeciently and in generally behave better over the course of days or weeks without shutting it down, and with large amounts of tabs.
But yes, I should have not reported Chrome. That wasnt relevant to the point I was trying to make (FF3 vs. Opera).
Yeah, I shouldnt have mentioned the Chrome stuff at all.
My goal wasnt to compare with Chrome, but to show the relative crappiness of FF3 vs. Opera with a large amount of tabs open and having been run for several days.
I fully expect Chrome to consume more memory at peak than single-process browsers like FF3 and Opera, but I also expect it to release memory MUCH more effeciently and in generally behave better over the course of days or weeks without shutting it down, and with large amounts of tabs.
But yes, I should have not reported Chrome. That wasnt relevant to the point I was trying to make (FF3 vs. Opera).
How does FF extensions do the following:
- multi-processed architecture, rather than the ancient one-process-for-everything philosophy of FF?
- plugins running in separate processes
- stop leaking memory like a sieve, even on FF3
- run in low-priv sandbox on Vista
I hate to join the hype here, especially over a product so beta.
But the google folks have, IMO, the right idea of where browsers need to be in 3-5 years. MS is doing the same.
Firefox's old architecture is starting to show.
I dont know where Opera will fit into wrt mult-threadede vs. multi-process. But Opera is a better product right now than FF3 is, so they've got a head start.
You do realize that ACID isnt an actual conformance test of any standard, right?
It's something that 'some guys' put together, and seemed reasonable enough (in a world with no reference implementation or conformance tests) that its gotten some mind share.
In addition, Acid2 is a much better representation of things actual web designers will do. Acid3 is a little out there, IMO.
And dont forget the phenomenon of browsers being optimized to Acid test, rather than actual real-world usage. Similar to what happened in the graphics card world. Companies optimized for the specific tests used by reviewers, rather than real world use.
Really? Just what do you want from a browser? All I care to use is Adblock and Flashblock. The whole point of a browser is to provide as minimal an obstruction between the content you're viewing and yourself as possible.
TaxMixPlus with a ton of configuration as a bare minimum. The built-in tab behavior and session management of FF is fundamentally broken, in my opinion.
I would disagree with your second sentence. The browser not only has to display content, but has to help me manage that contents organization, history, and display.
If I had 38 tabs open, I would regard that as a good time to close the browser and start again. I just don't need that amount of clutter. Even on my desktop system, with its dual-screen Xinerama arrangement, it is impossible to keep track of much more then 15 tabs per screenful.
Basically, I use tabs and session memory instead of bookmarks, and for stuff not in an open tab, I just rely on the auto-complete history in the title bar. It's weird when I write it out, but thats the path of least resistence for me.
For example, I've got 5 tabs open semi-permanently for various Ruby and Rails API and documentation pages.
In my opera, I leave stuff there that I want to come back to later, sometimes many months later.
Firefox right now had 3 rows of tabs, but I'm also running 1920x1080 in a 17" laptop screen. It's not really big enough for that resolution and my eyesight, but browser zoome is my friend. :)
Opera strangely enough deals with many tabs much better, and I can get up to 40+ (a guess, I havent counted specifically) in one row in opera before it gets unusable.
even when you maximize the browser they don't touch the screen edge
They do on my box, Vista Business x64.
Only when the browser window is non-maximized do they not stretch to the top of the window.
I hate feeding cowards, but come on.
How about stop using the emotionally laden and inaccurate word 'bloat' and just use 'space'.
Then go google for 'time/space tradeoff'.
In the specific case of Chrome, they're doing a reliability&security/space tradeoff.
This is basic CS stuff.
Ick.
Bookmarks?
Does anyone still use those? I havent since the Netscape days.
I just leave the tab open forever. I had tabs on previous laptop in Opera that had been there for almost 2 years.
Just seems simpler that way.
* Firefox is much better in 3.x; at least in OS X, it's a fairly solid theme (not without its quirks, but there you go).
I agree with you there. I'm still not a big fan, but FF3 is much better than FF2 was.
I wish I could find better words for it, but FF has just always looked so ... unsophisticated, I guess is the word. Or close to it.
Safari, IE and Opera all have quite a bit of 'polish' to them, and the graphics/icons done very well. And that aspect seems (to me) to transcend personal taste. But thats just my POV.
Actually windows is the preferred platform for many engineering usages.
Ever since XP-64.
The systems are faster, cheaper and they can run word, excel and outlook.
Windows has been a great platform for large-memory engineering usage for many years, due to the availability of XP-64 and OEM's like HP who make stable supported systems for XP-64.