X11 Chrome Reportedly Outperforms Windows and Mac Versions
An anonymous reader writes "In a curious contrast to conventional wisdom, there are reports of X11 Chromium being faster than Windows or Mac versions. In the thread titled 'Why is Linux Chrome so fast?,' a developer speculates that it is due to the use of X11 capabilities: 'On X-windows [sic], the renderer backingstores are managed by the X server, and the transport DIBs are also managed by the X server. So, we avoid a lot of memcpy costs incurred on Windows due to keeping the backingstores in main memory there.' Has the design of X11 withstood the test of time better than people tend to give it credit for?"
"Has the design of X11 withstood the test of time better than people tend to give it credit for?"
Yes of course it has. X11 is great and anyone who thinks otherwise doesn't understand it properly, or have an accurate idea of what it's genuine problems are actually due to.
Does anybody know if it's possible to compile a version of Chromium for X11 Mac?
X11 has never been a bottleneck in performance on the desktop. Many people have been confusing X11 with the desktop system/kernel/applications and wrongly blamed X11 for any slowness.
HTTP/1.1 400
Uh. Maybe you don't understand what I am saying....
I KNOW that MacOS 10 is OS X.
I'm asking if anybody has compiled a version of Chromium to use X11 instead of using Cocoa.
I like how you took a bunch of graphics and video related words and threw them together in a post that sounds coherent, yet is totally wrong.
After doing a fresh install on both systems the guy determined that it was just some sort of freak occurrence. He had one laptop with a 2.0ghz processor and another with a 2.4ghz processor and after the reinstall on both systems, VOILA...it was only roughly a 20% difference...
TFA - just keep reading further and further down the usenet post
So in other words, those who programmed on X when X was the only big player are now older where you lose hair and sexual virility.
Colour me surprised.
Meanwhile X is still working better than Mac or Windows as a GUI framework.
Thing I don't get is why so many guys have a hard-on for dissing X.
Why?
If you choose your abstraction carefully, you can hide expensive details from user space.
In the short term it may not gain you anything.
But if the abstraction lives and thrives, then much can go on behind the scenes to improve the situation.
Java is another example of this: they carefully designed the language so that it would be possible to make vast simplifiying assumptions and implement optimizations that really improve performance without impacting the "other side" of the wall. Originally java was slow, but hard work behind the scenes means that your java programs run much faster now, without any extra effort on the part of the application developer.
X Windows is a great example of this. Originally we had dumb frame buffers with no acceleration at all. And yet X provides an abstraction that allows lots and lots of hardware optimizations to take place.
The Windows and OSX abstractions for the display don't provide an API that allows these sorts of optimizations to be done behind the scenes. We have incredible display hardware with awesome features that go unused in these environments because the display abstractions do not allow for them.
I'm pretty sure that the biggest slowdown for Chrome isn't the memcpy/bitblitting for the display - it's probably something to do with the insanely big history files it generates as part of it's searchable history.
Files you can't limit in size, can't compress, can't optimise. Instead all you can do is to delete them and loose all your precious history information.
It also has the bonus of providing a searchable address bar that performs significantly worse than firefox's searchable address bar !
I use both firefox and chrome simultaneously at home and at work, dedicated each browser for different tasks I do. It's a real shame that Chrome is being seriously degraded over time by this fault - I've started switching back to firefox because of it as my laptop just struggles too much with it now...
X11 is not bloated nor slow, GTK is both. Put 100 or so spinedits on one form in Win32 and in GTK. On netbook or anything other than quadcore machine, you will see significant difference in speed. And it is not because of the graphics. Sometimes I think GTK render fractals somewhere just to keep processor busy. Meanwhile, when I draw 100 spinedits using only cairo, it is almost as fast as Win32 while giving the same output as GTK including shadows, gradients, etc... I've being noticing this GTK behavior since forever.
GTK folks, please fix it.
How about a Qt build of Chromium as opposed to a GTK build of Chromium? I'd be real curious to see how it performs.
I was also saddened to see the port team bitch and complain initially that they had to use GTK, because GTK is "the standard toolkit" for Linux, while in the same paragraph complaining that Linux doesn't simply have one standard toolkit. Last time I checked, Windows has a bevy of toolkits and APIs to choose from as well. They also complained that writing audio in Linux was difficult.
If they had written a Qt app from day one, porting would be minimal, they wouldn't have to maintain this huge separate trunks, it would have worked from day 1 on Solaris, Mac, Linux, Windows, BSD, etc. Audio would have been very easy to code with Phonon.
I'm curious to see if Chrome (the browser and OS) are indeed both developed with GTK, then will they both need some retrofits when GTK 3.0 ships, further complicating the matter?
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Give the guy a break. He's only trying to create synergy among web-enabled paradigms.
> It's been called X-Windows for a long time. ... incorrectly. It's actually the X Window System.
http://en.wikipedia.org/wiki/X11
25% Funny, 25% Insightful, 25% Informative, 25% Troll
"I also know that graphic displays and inputs are vastly different today than they were 10 and 20 years ago."
Really what is so different other than the number of pixels on the display?
"I suspect that X11 wasn't developed initially with today's needs in mind."
Then perhaps you should read about the original goals of the X window system.
Funny, but the real answer is GDI.
http://en.wikipedia.org/wiki/Graphics_Device_Interface
Buckle your ROFL belt, we're in for some LOLs.
I guess maybe I'm making bad assumptions, as I don't really know what Chrome's intent with multiple processes is... but I think the answer to your question is no, it wouldn't necessarily impact security and certainly wouldn't fully negate the multi-process approach's advantages.
The major advantage to keeping separate tasks in separate processes, it seems to me, is that they have separate memory spaces. I can't sneakily inject code into another task's buffers if I'm not in the same process. In particular, if the browser spawns a process to execute some plug-in or whatever, there's less risk that the plug-in or whatever can trick the browser into executing malicious code. (Or cause it to crash, but that's more "stability" than "security".)
In other words, the biggest security risk comes from two processes sharing the same process at the same time. I don't think re-use is as big a problem. Sure, if you did a bad job of wiping buffers, then in theory one process could see its predicessor's data; and I guess there are scenarios where that could be an issue, though I'm a little skeptical that a malicious process would go rooting around its uninitialized space "just in case" it was handed a process with something it would recognize as sensitive data from a previous task...
"For whatever reason, Linux drivers have NEVER taken advantage of this, and that is why Linux often looks clunky compared to Windows on the same hardware."
This is just BLATANTLY WRONG.
All you need to do is read the feature announcements for the nVidia and ATI display drivers, which you apparently DON'T DO.
nVidia's REAL target market is the folks who work at animation companies, and the hard-core data visualization people. Their products are designed to fly in THIS environment. This market is VERY HEAVILY tilted toward Unix. That is WHY you can get such EXCELLENT display support under Linux. The rest of us are just piggybacking off of this.
Really? I thought he was trying to leverage the cloud architecture to optimize his software services enterprise based on open standards.
Today's Sesame Street was brought to you by the number e.
No.
Explorer is a cross between your shell and your window manager, its like the Gnome or KDE window managers except most of the window manager functions are the responsibility of process itself in Windows, although they are provided by the standard libraries, which us things like the uxtheme.dll and company to provide a consistent interface until the app goes well out of its way to do otherwise. You can use cmd.exe in place of explorer and apps won't notice the difference unless they interact with explorer, such as things that put items in the notification area (systray to most). Apps do not talk to explorer to display windows any more than apps on Linux talk to Gnome or KDE, or Finder on OS X. None of them have to be installed or work in order for Windows to be displayed. You can kill all explorer.exe processes in windows and you just won't have a start menu or clickable desktop until it restarts. You can not kill the X11 client and do the same, all processes using it will be disconnected and exit or crash.
Quartz is a toolkit/API used within the 'window_server', like DirectX to some extent on Windows. It is not the generic low level API like GDI is on Windows.
'window_server' would be almost the direct equivalent of X11 on OS X in native applications, if you exclude X11 for OS X, which acts as a translator basically between X11 servers (applications) and your X11 client (the gui you see) and passes that along to the window_server process to display.
In reality, all three of these systems use a different mix of the way these components interact and at which layer things are done due to their different designs. There isn't a 1 to 1 relationship between any of the components.
I do not recall which process on Windows handles the GUI, but it is more or less untouchable, unlike in OS X and traditional UNIX where you can easily kill the gui portion, doing so in Windows traditionally would result in a blue screen, this is no longer strictly true in the Windows 6.x versions (Win2k8/Vista/Win7), but I don't recall what process owns that part of the system off the top of my head.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
MS Windows = Explorer.exe
Linux = X11
MacOS = Quartz
That this is marked up as informative really shows how bad slashdot has become. You losers are even shitty at being computer nerds.
Let's just say you're wrong and I've seen flickering on plenty of Mac OS desktops.
And with X11, the flickering you get is more likely due to the program ignoring X backing store and "doing their own thang". Well guess: their failure isn't the fault of X11, is it.
"To be fair to X, managing compositing et al isn't it's job---but it should be!"
Compiz: It IS!!!
Sheesh.
And Enlightenment had compositing freaking YEARS ago.
" Between X's by-design paucity of features"
You mean like C's "paucity of features" that means libraries that do whatever you damn well want?
There is no "by-design paucity": by design X11 is extensible. See X extensions.
"Had X been designed a little more smartly (eg, for actual people and not for computer scientists) this probably wouldn't be such a problem."
Uh, what design WOULD have been for "actual people"? This statement, bald as it is, makes no sense.
X11 is designed for the task it has to solve: drawing a GUI.
One program: one purpose. Expose capability and don't impose process: someone may think of a use you never considered when writing it, so don' t write a program that will hate them for it.
The UNIX way.
Which, oddly enough, Apple have embraced to a large extent since bringing out Ten.
"By comparison, again, we have MacOS X's system, which again just works, even if in theoretical terms it's a little slower."
Two problems: the dissing of X is how slow it is. So Ten's system being slower should be more dissed, yes?
Secondly, ten's system doesn't just works else there would be no problem with "But Mac can't support clones, they have to have a limited selected hardware to deliver the eXPerience!". Ignoring that this just works meme is wrong. I've seen it often just stop a lot.
"The UNIX Hater's Handbook, which is a little bit out of date now, goes into the design errors of X "
And here we see where you've been misled.
The UNIX paradigm is extensibility. Policy is set by the use of the program. not by its programming. And the UNIX haters hate UNIX so hate the UNIX paradigm. Ergo they hate X too.
Maybe they're just a little bit predisposed to a priori conclusions...
And it's not the "why does X drive people nuts" it's why do people get a stiffy when the opportunity comes to diss X?
(oh, and a quick look at that, hmm, *discourse* seems to be a person who gets a real big boner over getting to rant and rave about how X is teh devil. Could he be any less coherent?)
Comment removed based on user account deletion