X11 Chrome Reportedly Outperforms Windows and Mac Versions 542
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?"
Test of time (Score:4, Funny)
"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.
Re:Test of time (Score:5, Funny)
Why is this modded funny?
Re:Test of time (Score:4, Funny)
Forget about the gp, why is THIS modded funny?
Re:Test of time (Score:4, Funny)
And God forbid that I continue the joke and say, "Why is /THIS/ modded funny!?"
Re:Test of time (Score:4, Funny)
Re: (Score:3, Funny)
Forget about the gp, why is THIS modded funny?
Because if you say "why is this modded funny" and "this" isn't modded funny, then people get confused...
Re:Test of time (Score:4, Funny)
you guys are hilarious.
Why isn't this modded redundant?
Re: (Score:3, Funny)
This is not funny.
So in other words (Score:3, Interesting)
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?
Re:So in other words (Score:5, Interesting)
Because, from a user's perspective, it doesn't work all that well. Here's an example:
On MacOS X, it's just about impossible to get into a situation where a) video tears or flickers, or b) menus and windows can "rub out" other menus or windows (eg, you can't drag a window around like a giant eraser on Mac OS). On X+whatever, it's pathetically easy to do either. Windows is somewhere in-between the two.
To be fair to X, managing compositing et al isn't it's job---but it should be! Between X's by-design paucity of features and the number of combinations of video driver, X server, window manager and settings thereof, it's hard to get a decent, modern desktop experience. 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. Grafting things like multiple display support, accelerated 3D, video playback and now, compositing, have shown problems. Back in the day, when you could just buy IRIX (ro whatever) and be assured of a working, end-to-end X implementation this wasn't an issue. With the clusterfuck that is X.org+DRM+GEM+Mesa+KMS+GL/GLX/AIGLX+DRI/DRI2+UXA/EXA/XAA+whatever window manager is invovled, it's a crapshoot.
By comparison, again, we have MacOS X's system, which again just works, even if in theoretical terms it's a little slower. Users don't care that much about GTK benchmarks; they do care if the user experience breaks down.
The UNIX Hater's Handbook, which is a little bit out of date now, goes into the design errors of X [art.net]. It's worth reading if you're wondering why X drives people nuts.
Re:So in other words (Score:5, Insightful)
The UNIX Hater's Handbook, which is a little bit out of date now, goes into the design errors of X. It's worth reading if you're wondering why X drives people nuts.
The handbook may be out of date, but that section on X is just as true today as it was then. This part in particular hits the nail on the head:
(The idea of a window manager was added as an afterthought, and it shows.)
If X outperforms anything, it is by sheer luck and unexpected consequence. The planets align "just so" and for once it is the best implimentation for a particular task. It is not a common occurance. Coming to the conclusion that it "stood the test of time" based on a single piece of software is rather foolish. If X regularly out-performed Windows and Mac this would not be a surprise, but of course, it is a surprise.
Re: (Score:3, Informative)
The point is that while X is "an afterthought" and "badly designed" it has been fixed so well and so often by so many people (simply because there was nothing better) that it has already had all the major bottlenecks taken out of it ...
It is an afterthought in that it is stacked on top of the rest of the system rather than integrated, and it has a client server model because originally the display was normally on a different machine than the server (this is often raised as a bad design), but this can actua
Re:So in other words (Score:5, Insightful)
, and it has a client server model because originally the display was normally on a different machine than the server (this is often raised as a bad design)
You should read that section on X the GP posted, they actually tried to use X for its intended purpose (back when that actually was an intended purpose, and had not been hacked around yet) and found it nearly useless as a remote display server/client setup compared to other setups, most notably Sun's at the time. It was arbitrarily devided into client/server (and "client" and "server" roles were reversed from convention, for some strange reason) without much rhyme or reason, which made it a bandwidth hog and meant half the graphics application had to reside on the client (the end computer the graphics, not X's retarded definition of client) anyway.
Except that it wasn't. For the longest time X11 was the most bloated and slowest option out there, for remote and local applications alike. The only reason it is fast now is because hardware has moved so far beyond it that it is fast in spite of itself. It certainly isn't nearly as powerful as any other GUI system, and when you actually add on all the bells and whistles (which must be created separately by somebody else) it's still slower than anything around. Seriously, add the necessary components to make X11 match Windows XP/Vista/7 or Mac OSX, particularly a good window manager window dressing from Compiz, and you'll find almost everything GUI-based runs slower on X11.
That Chrome is an exception is shocking, and is why everybody is surprised, hence TFA.
Re:So in other words (Score:5, Informative)
(and "client" and "server" roles were reversed from convention, for some strange reason)
What? Since when? I always thought that the X server was the behemoth application that ran, waiting for connections from other apps (the clients), consolidated the requests, acted on them, and responded back to those clients. You're telling me that X itself is termed the client, and those little apps that all connect to it are called servers? Yeah, that IS backwards!
Oh, hold it, that's not what you're saying at all. You think that "server" is a designation of the size of the machine it runs on, not a designation of the model of communication the application itself uses. You do realise, though, that even a "web server" (which could just be a wall wart [slashdot.org] acts as a client for DNS querying, right? That "client" and "server" are fluid terms based on what the app is doing, and not where it is?
A server responds to incoming request(s), usually from multiple sources. A client initiates those request(s), usually to a single target. That is all. X uses these terms perfectly. The application sitting on my desktop machine is the server, and the xterm I'm running on the Linux/zSeries box is the client. For this particular purpose. Of course, that Linux/zSeries box is also the ssh server that I use to connect to it in the first place, over which a tunnel is created in the reverse direction to allow that xterm to come up at all. It's not the convention that is being ignored. It's just that you're using the wrong definition.
Re: (Score:3, Insightful)
Comment removed (Score:4, Informative)
Re: (Score:3, Insightful)
By that user-centric logic, however technically incorrect it may be, X's names ARE reversed.
Only in computers would you see people advocate for precise technical to be defined to be defined by non-experts.
Nobody argues about what a "normal distribution" is, or what "adaptive chosen ciphertext attack" is, but if you talk about "client/server", now everyone has an opinion.
Re: (Score:3, Informative)
back when that actually was an intended purpose
Lots of people still use X in its intended purpose. Many people in a corporate or academic environment who need to run X apps nowadays will run them on a server or compute cluster and have the display shown on their PC (Typically running Windows with Exceed or other server). Don't poo-poo that design feature just because you haven't made use of it. Everybody's hot to jump on the Citrix and VNC bandwagon these days to do what could be done with X 20 years ago.
The performance issues you see from running remot
Re: (Score:3, Interesting)
It is an afterthought in that it is stacked on top of the rest of the system rather than integrated
Which, of course, is precisely why it has been able to survive, whereas display systems embedded in other platforms died with that platform.
It is perfectly aligned with the best practices of unix, and a design largely retained by OSX (as if that confers any special blessing).
There are as many performance gains to be realized by this method as there are drawbacks. With the advent of high performance GPUs, its only a matter of time before the entire X server is moved into the hardware on the video card, (whe
Oh dear. So wrong. (Score:5, Informative)
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?)
What? (Score:3, Informative)
- As to overwriting. This occurs because the update events follow behind the UI. The problem is resolved by the composite extension, or by enabling backing store -OR- by increasing network bandwidth. Some old X Servers didn't have backing store (and certainly no compositing), AND ran over constrained pipes. It hasn't been a problem with desktop X for years.
- X is extensible by design. Multiple display support, accelerated 3D, video playback and compositing do work. For $DEITY sake, I use these features on m
Re: (Score:3, Informative)
On MacOS X, it's just about impossible to get into a situation where a) video tears or flickers, or b) menus and windows can "rub out" other menus or windows (eg, you can't drag a window around like a giant eraser on Mac OS). On X+whatever, it's pathetically easy to do either. Windows is somewhere in-between the two.
a) That is largely an issue of the video driver in use. Given the poor state of documentation on most video hardware these days it isn't difficult to understand why this might be happening. Back in the SVGA era you didn't see this happening because there was enough documentation of a standard interface to do things right. Some of this is server related as well. X was never designed to support opaque window moves. That has been grafted on in time.
b) That is something that afflicts the X.org server. You don't
Re:So in other words (Score:4, Informative)
I'm dragging a Firefox window over a dead RDP session right now. It's erasing the contents of the window. I've never, ever managed to do that on MacOS X and not often on Windows Vista.
If I use a compositing window manager, that problem goes away, but in it's place comes a whole new set of issues. Ever notice how common "turn off Compiz/KWin compositing" comes up when people try to troubleshoot X issues? At least Vista is smart enough to turn it off for you when the situation merits it.
On no other platform do you ever have to think about syncing refresh rates. On X, you're at the mercy of the driver and window manager. On an nVidia card you're probably ok. On a recent Intel card you might be. On ATI it's a complete crapshoot. Throw in compositing and it gets even more complex.
Meanwhile, on much of the same hardware, you could run a hacked version of Mac OS X and not see a lick of tearing or artifacting.
I'm not saying that IRIX didn't do have that problem, but that, at the time, you could buy a commercial UNIX workstation and get a decently-integrated X server. The problem then was that you had to pay an astronomical sum to get the same window management performance that you took for granted on a Mac, and that a heck of a lot of tuning, testing and integration had to happen to get your (very expensive) video or 3D application to work, again, as well as a Mac.
Nowadays, you don't have to spend a fortune tog get decent X. What you have instead is that you're stuck with one card family (nVidia) or checking experimental code out of various git respositories, and even then you're not guaranteed the level of seamless video behaviour that you'd see on a Intel-based machine running Windows Vista.
I'm glad some people get decent X performance, but spending more than a little time on, say, Phoronix or Ubuntu's forums should disabuse you of the notion that everything works.
Re:So in other words (Score:4, Informative)
I'm dragging a Firefox window over a dead RDP session right now. It's erasing the contents of the window. I've never, ever managed to do that on MacOS X and not often on Windows Vista.
For RDP that makes sense- compositing doesn't happen over Terminal Services. What normally happens on Windows, is that when the Window Manager (not Aero) detects that an application has stopped responding to WM_PAINT messages, it actually swaps out the window for a special one that looks just like the last known good copy of the windows display surface. If it can't for some reason, it just dumps a plain white window with loading cursor instead.
That's actually intentional.
Wrong (Score:3, Insightful)
The window manager should have been part of X from the get-go.
The window manager should NOT be part of X. Choice of window managers is a good thing. And what is even better is choosing and changing window managers without logging out. Or running them in different windows (really handy sometimes.)
99% of users don't do that you say? I don't care. It's nerdy goodness, and this is news for nerds.
For and against tighter integration of wm's (Score:3, Insightful)
How much of the graphical user interface evolution on UNIX has been put back because the varying WMs and toolkits?
It's better now that we're down to X.org and GTK or Qt, but years were wasted because you couldn't write an app that took advantage of, say, Display Postscript or multi-head or decent colour-correction or a given GUI toolkit without restricting your market.
For a very long time---and ending not so long ago---state of the art, cross-platform GUI toolkits on UNIX started and ended with Motif. That's horrible.
That doesn't really speak to the question of whether the window manager should be built-in...
I mean, I don't want to sound like the situation is all roses here. Yes, as you say, there's been a lack of focus that has detracted from the overall experience. But, you gotta look at the bright side, too. Suppose Motif and/or mwm had been integrated tightly into the X server... Where would we be now? We'd still be stuck with it, probably... Would we really be happier knowing that a clear direction had been c
Re: (Score:3, Insightful)
*drag*
*drag drag drag*
*drag all over the screen as fast as I can like an angry monkey on crack*
Nope, don't see any tearing. CLOSED WORKSFORME
Re: (Score:3, Interesting)
I think we said that: if you use Compiz or KWin, you don't get rub-out because all this is composited off-screen. (you might get tearing, if you don't have the right card and/or haven't precisely set up sync-to-blank). That's great.
Now, if you turn on Compiz/KWin, you break tear-free video playback on some cards/drivers/versions. You might also break display of accelerated 3D in a window. That's not so great.
Those of us who are complaining about tearing have probably forsaken Compiz/KWin+Compositing beca
I read the article. So sue me. (Score:2)
Interesting comment from one of the developers:
We could also just move process creation to a background thread. An unused process might just get swapped out and be no cheaper to "make live" than it would be to create a new process.
Surely this reusing of a process would negate the supposed security benefits of Chrome/Chromium's multi-process spawning architecture?
Re: (Score:2, Insightful)
We could also just move process creation to a background thread.
Ok, that's just making the process and subsequent address space.
An unused process might just get swapped out and be no cheaper to "make live" than it would be to create a new process.
It sounds like process just being put into a pool - the process creation thread is holding onto the handle - and when someone wants a new process, the thread just hands over that one presumably the heap and stack for that process would be cleared.
I don't see w
Re:I read the article. So sue me. (Score:4, Informative)
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...
X11 Chromium on Mac? (Score:4, Interesting)
Does anybody know if it's possible to compile a version of Chromium for X11 Mac?
X11 has never been a problem. (Score:5, Insightful)
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.
Re:X11 has never been a problem. (Score:5, Funny)
So you are saying it is not X11 that is slow but Linux... Oh man you are taking it out of the frying pan and into the fire.
Re: (Score:2, Informative)
I think he means applications where Linux or a BSD is the primary development environment and those APIs were the target. Agreed it is a sloppy use of "native". In the case of Firefox, XP is a the primary dev environment and it also benefits from Profile Guided Optimizations when compiled. The Linux port could in principle but the work hasn't been done (and probably won't be).
Re:X11 has never been a problem. (Score:5, Informative)
To be fair I think the gp meant Linux exclusive, not native. But even then Firefox is a pretty bad choice, since its development has always had Linux in mind as well as other platforms.
If you benchmark some random 3D games between Linux and Windows there is no Linux slow-down. If you benchmark the responsiveness of a well written GUI environment on Linux vs Windows, there's no slow-down. In fact, I've only rarely run into a situation where Linux is slower than Windows in a GUI or otherwise. The primary reason I've come to realize is lazy programmers writing slow client software, and in some cases, horribly inefficient GUI toolkits (Gtk, I'm looking at you).
X11 isn't the bottleneck, and ever since a few tweaks were done for desktop users, the Linux kernel isn't either.
Re:X11 has never been a problem. (Score:5, Interesting)
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.
Yes, exactly. X11 ran reasonably complicated applications 20 years ago on hardware that we throw out as woefully inadequate (or quaintly archaic) today, and did so with entirely acceptable speed. X11 isn't the problem -- hardware is what, two orders of magnitude faster now? -- it's all of the poor programming practices that have layer upon layer of abstraction and interpretation stacked tall and high.
I had a 266 MHz laptop in the mid 1990s (about 15 years ago) that ran Linux (RedHat 6.2, mostly) and X11 perfectly well with a mere 64 MB of main memory. A while ago, I tried to load a Fedora release (9, if I recall correctly) on it. "Laughable" is a good term to describe the result. My current laptop has a 10x faster processor and 50x more memory. There's more cache on the processor in my new laptop than total system memory on the old one --- And yet, Fedora 11 feels sluggish on the new hardware. X11 is not the problem.
Re: (Score:3, Insightful)
Yes, exactly. X11 ran reasonably complicated applications 20 years ago on hardware that we throw out as woefully inadequate (or quaintly archaic) today
But that was in an environment where the average PC had a 640x480 display with 16 or maybe 256 colours. High end workstations had higher resolution but were often monochrome. The X server simply didn't have to do anywhere near as much work as a modern one.
Re: (Score:2)
Yeah sure because every layer of indirection is faster than direct ram access... sorry
But I still after 10 years am not convinced about the design. X11 follows the design philosophy of enforcing
a methotology (remoting on drawing level) which is needed by about 5% of its users and thus burdening a layer
of complexity on top of the rest of 95% users who then have to deal with shoddy drivers.
Heck even the remoting does not scale well enough that it is usable without tricks for modern UIs out of the box.
Unless y
Re: (Score:2)
This is the one gripe about X that I can understand and get behind.
Wayland is not designed to be network transparent, nor do remote rendering. I'd rather have a system like that.
Re:X11 has never been a problem. (Score:5, Informative)
The thing is, X11 gets network-transparency essentially for free. The system requires some sort of inter-process communication, even when running on a local machine, and Unix-domain sockets are one of the fastest IPC mechanisms available short of shared memory (which is orders of magnitude harder to get right). X11 supports shared memory for local processes, to speed up communication of large objects like pixmaps, but the core protocol is socket-based and there is absolutely no reason to change that. So long as this is the case, why not support network transparency? BSD network sockets are interchangeable with Unix-domain local sockets once the connection has been established, so it's not like there's much more effort involved.
Re: (Score:3, Interesting)
The modular nature multiplies the number of potential bugs by an order of magnitude for each layer. I.e. if the Client/Server model of X11 were merged into simply the X11 renderer, GUI applications would be an order of magnitude easier to write. It isn't too bad for X11 because it isn't that big or all that complicated, but the client/server nature of X11 creates the potential for a lot more bugs.
The biggest example of the bug problem with modular systems is the GNU HURD kernel. It is modular, I believe
Re:X11 has never been a problem. (Score:4, Informative)
memcpy of 1000s of bytes is slower than sending a message. Many of these systems that provide direct access to RAM require lots of copying too. (OSX one example I'm most familiar with)
X11 also supports direct access to memory, but it is only used in very specific circumstances because it's extra work to set up.
Re:X11 has never been a problem. (Score:5, Interesting)
I've never had performance issues running X11 over a LAN. VNC, on the other hand, is noticeably sluggish (RDP seems to work well though). I don't run apps over a WAN very often, except for the occasional emacs session (which is a bit laggy but useable).
But more importantly, the X style of remote access is much, much more useful than VNC/RDP. Remote apps integrate seamlessly into my desktop, instead of being stuck in a separate window. And multiple people can run remote apps on the same machine, without interfering with each other or a user who's physically sitting at the machine.
VNC and RDP are useful hacks for systems that weren't designed for remote access, but they're no replacement for real network transparency.
Re:X11 has never been a problem. (Score:5, Informative)
VNC and RDP give you the ability to interact in an explicitly remote sense, the windows in question operate on the remote server instance and will remain in existence regardless of what happens to the local system.
That's one reason I stopped using X11 forwarding even though I could: If I lost connection on my laptop for any reason, every application I had open was dead. With VNC (or RDP), they were always running remotely.
Also, if I have an application open on display :0 I have no way (that I know) of moving it from :0 to :10 and having it appear uninterrupted on my local display.
I'd say that they're extremely useful hacks that solve issues that are, at least for me, unresolved in X11.
Re: (Score:3, Informative)
Re:X11 has never been a problem. (Score:5, Informative)
I've never had performance issues running X11 over a LAN.
VNC and RDP are useful hacks for systems that weren't designed for remote access, but they're no replacement for real network transparency.
Oh no you don't!
Try using X11 over something slightly slower as LAN. Just try it, over ADSL, whatever
I tried. And X11 is totally and utterly USELESS. A well configured VNC (and you have to really play with the knobs) is usable. RDP is the best (of course, it wasn't developed by Microsoft...)
Re:X11 has never been a problem. (Score:4, Informative)
If VNC is usable, you'll love NX [nomachine.com]. It is *far* more responsive for a given bandwidth/latency and it is persistent too (the session keeps running if your client disconnects.).
You can even run VNC to other machines through NX and it feels faster on limited bandwidth (NX creates a session on the Linux client that runs a fullscreen vncviewer to another system.)
It's my standard way of working remotely. My default work desktop lives on a Linux machine at the office and it resizes automatically depending on what screen size the client uses (as long as your Gnome or KDE version is recent.) Even at the office I run NX to my work session - over a LAN I can't tell the difference between local and NX.
Re: (Score:3, Interesting)
Random tip: if you just want to run a single app from the remove machine, ssh -XC :-)
The X tells ssh to forward X and the C means compress. One particular app I used to run (connecting from anywhere to my Linux box at home, which was behind a 256k up DSL) launched in 30 seconds with -X and 10 seconds with -XC.
Of course, different people's definitions of "usable" differ.
Otherwise, I hear good things about http://freenx.berlios.de/ [berlios.de] .
Re: (Score:2)
I never thought that X11 was slow. My problem with X windows has always been that it was too fragile and complex. A lot of features of X seemed to be over kill for use on a standard desktop.
I never felt X11 as too slow just that it tended to break way to easy.
Re:X11 has never been a problem. (Score:5, Informative)
Really? (Score:3, Informative)
20% faster on his 20% faster machine.... (Score:5, Insightful)
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
Choosing the correct abstraction layer (Score:5, Insightful)
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.
Re: (Score:3, Informative)
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.
That is not true. Windows GDI was designed for hardware acceleration. As an example: Circa 1998 I got an ISA Diamond Viper video card which performed orders of magnitude faster than comparable VESA cards because the drivers took advantage of the hardware rasterization. For example, dragging a window didn't redraw the window, it moved the bitmap from one place in video memory to another. Drawing/filling lines and shapes was absurdly fast because GDI offers primitives for those operations and the driver m
Re:Choosing the correct abstraction layer (Score:4, Insightful)
"X11 doesn't expose that kind of stuff."
I'm not talking about the stuff that is exposed. I'm talking about the things that are NOT exposed. X11 runs great over the network because of all the things that they chose to NOT allow the user to do.
Sure you can accelerate bit-blitting, that is really old school.
Take a look at the fundamental model. When you move a window in Windows, the app is notified and it has to respond. Try moving the window of an unresponsive app, it does not redraw because Windows is asking the app to redraw it. When you move the window of an unresponsive app in X, the window redraws because X already knows what it needs to know about redrawing the window without having to make a trip back to the application.
Those are the kinds of things that you DON'T expose. That way the driver and hardware are free to implement them as they see fit.
Re:Choosing the correct abstraction layer (Score:5, Informative)
No X11 can do Windows 7 and Vista and OSX expose features ... and does so .....
The whole point is that X11 does not draw Windows it draws tiles ... Window Managers draw windows ... and they can draw 3d glass dancing Windows on X11 without X11 caring about it ...
On Windows the layers are Driver - GDI - Application ...)
On X11 the layers are Driver - Kernel - X11 - Window Manager - Application (there may be more
The point is that you do not need to Expose the low level stuff to the application. .. just to the window manager, the application should not have to worry about redrawing itself, or resizing the window etc... it should let the window manager worry about that
Re:Choosing the correct abstraction layer (Score:4, Informative)
Uhhhh... have you seen Compiz, Beryl, Metisse, Gnome-Shell or any of the other whiz-bang screen-flipping and warping and cubing desktops? They do run X11 apps... through an X11 extension, be it AIGLX or XGL or something similar. X11 exposes whatever you want through the use of extensions, including the stuff needed to do 3D window manipulation. It did this when Vista was still Longhorn, let alone Windows come lately annex 7...
Re:Choosing the correct abstraction layer (Score:5, Interesting)
X itself is undergoing incredible levels of development and improvement. Way back when, "The Open Group" tried to say that X was "complete" with X11R6, and no more development was needed, though somehow defects and omissions let numbers start creeping in after the decimal point. IIRC it got to somewhere in the X11R6.3-X11R6.5 range. Then XFree86 took over, ramping up some innovation, though still slower than many liked. After that X.Org took over, decided it was high time for X11R7, (They did X11R6.9 as a stage to get there.) and things started moving faster.
At this point, they're redrawing the lines (KMS, DRI/DRI2, DRM) between kernel and user space to (hopefully) get a better balance speed and stability/security. They've pretty much reworked the 2D acceleration (*XA) and are reworking the 3D acceleration (Gallium3D) which will also simplify driver development. The inteface has been reworked down near the protocol level (xcb) to improve speed and memory usage. One thing I've heard talk of is "inverting" the stack to put all primitives on top of the 3D hardware, since that's where most of the hardware performance work has been done.
The next 6-12 months will be very interesting for X-Windows, but then again, the past few years have been interesting, too.
Re: (Score:3, Insightful)
Isn't DRI not so much a part of X11 as it was the original Linux "community" attempt to address the functionality that nvidia came by later and fixed?
Comment removed (Score:3, Interesting)
Memcpy not the biggest problem for chrome/chromium (Score:5, Interesting)
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...
Re: (Score:3, Informative)
I had the same problem with Google Desktop. It was a great tool and worked well for a while, but eventually its little database file was immense and was dragging my system down with it.
Re: (Score:3, Interesting)
With all due respect, it sounds like you want to blame everything negative about Chrome on one feature you don't like. Just sayin', the developers might have a reason to think that the rendering speed has something to do with the windowing system - they're a lot less likely to be just guessing and calling their guess "pretty sure".
But for the sake of argument - if the history files are the big slow-down for Chrome, why is that slowdown less pronounced on the X11 version?
So, X11 gotta suck? The point? (Score:3, Informative)
If you can take risk of re-compiling every X related app/library in case you give up in future, try the semi official/unofficial at http://xquartz.macosforge.org/ [macosforge.org] , it is newer than the Apple bundles. Install anything with the help of Fink/Macports like Konqueror from KDE 3 and see the amazing GUI speed, scroll speed, widget drawing speed.
I don't understand, as an OS X user, why a modern x.org on a good, supported hardware should be surprising to give better results. Also remember the insane things x.org has to do on OS X like using Aqua layer.
X11 is not bloated (Score:5, Interesting)
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.
Uninformed and wrong (Score:5, Interesting)
"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.
Other performance gains (Score:5, Insightful)
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?
Re:Other performance gains (Score:5, Funny)
A Qt build of chromium exists, and is normally known as "konqueror".
Re: (Score:3, Informative)
Konqueror doesn't even run on Webkit.
On my machine here, in Konqueror, you can go to the View Menu, select "View Mode", then click on "WebKit", to change Konqueror's renderer. So yes, it does. It just doesn't do so by default.
Re: (Score:3, Interesting)
Windows does not have a bevy of toolkits to choose from out of the box.
Windows has, the Win32 API, GDI and the common controls. They come with EVERY install of Windows, it is a requirement. Pretty much everything else sits on top and is optional. You can draw buttons, checkboxes, ect, that work across all apps the same with nothing else. You can add a layer of abstraction with MFC and ATL if you want, but most developers who have been doing it for long enough will avoid those as they are more trouble th
Re:Other performance gains (Score:4, Informative)
Windows does not have a bevy of toolkits to choose from out of the box.
Yet Windows developers often find the core Win32 API doesn't fit their needs, and waffle between toolkits like GTK, wxWidgets, Qt, and the usual cross-platform suspects. They also turn to .NET, Java (technically a whole language), MFC and others.
I constantly run into issues where I need to download a runtime to run a Windows app, because many developers don't simply develop for what is out of the box with a standard Windows install.
I've seen native X11 apps offer up checkboxes, form elements, and the like. So it is possible. It just doesn't look nice.
Developing audio on Windows is not necessarily standard, not easy. That is why apps might ship with their own separate audio library like OpenAL, tie into QuickTime, etc.
I have some non-trivial Windows apps that were built for Win95 that still run in Windows7.
Sadly, there were many Windows 95 era apps that were still 16 bit, which don't work in x64 versions of Windows 7. Half of my games (mostly from the XP era, not Win95 era) wouldn't work properly in Windows 7. Windows breaks compatibility all the time, even with service packs. Saying you have a particular app that still works doesn't mean the Win32 API has stayed the same, because it hasn't.
The GTK API has stayed mostly the same over the 2.x life-cycle. That is likely to change with GTK 3.
Now, I'm not a fan of GTK by any means. However, the GTK 2.x API has been around since 2002. Anything written for that API should still work fine today.
If they wanted the easy way out, they would have used wxWidgets, which at least feels native (by using the native toolkits) across Windows and Mac, and GTK on other Unixes.
That is basically what I said, except you apparently didn't get that. I suggested they use Qt (like wxWidgets is a cross-platform toolkit). Qt makes more sense for a variety of reasons, such as native bindings to Webkit (the heart of Chrome), and very easy audio development where you write code once, and then the audio works on Windows, Mac, Linux, etc.
Re: (Score:3, Insightful)
It's obvious if you work with Microsoft products that VS and SQL Server, for some reason, get little-to-none usability testing, as opposed to virtually everything else Microsoft creates.
Well, as it happens, I work on Microsoft products - VS specifically - and particularly on common UI parts - main and context menus, toolbars, toolwindows, start page, switcher, options dialog, toolbox etc (though as a developer, not an UX/usability expert). So if you can point any specific usability flaws, shoot. Especially those in VS2010 betas.
I know quite a few myself; for example, our toolbar customization dialog (Tools -> Customize) is atrocious from UX perspective. But it would be interesting to he
What's with writing "[sic]" after "X-windows"? (Score:3, Insightful)
Re:What's with writing "[sic]" after "X-windows"? (Score:4, Informative)
> It's been called X-Windows for a long time. ... incorrectly. It's actually the X Window System.
http://en.wikipedia.org/wiki/X11 [wikipedia.org]
Re: (Score:3, Informative)
Faster because it's incomplete? (Score:2)
I've been using the daily Chromium PPA builds for a couple months now (updated weekly usually), and Chromium is by far more responsive than Firefox on my Ubuntu 9.04 laptop. For some reason FF just seems to get laggy in the UI dept, and if I open up a handful of tabs, especially if there is Flash involved, the whole thing chokes and the app turns grey. Chromium seems to perform much better.
That said, it still feels very much incomplete. I don't think printing is working still, although I haven't tried it
Read this yesterday, installed, then removed. (Score:3, Interesting)
What to make of X11? (Score:3, Interesting)
I'm wary of any real old legacy code.
I also know that graphic displays and inputs are vastly different today than they were 10 and 20 years ago.
Do I know that X11 is inefficient? No, but I sure read plenty of other people making those claims. However, I suspect that X11 wasn't developed initially with today's needs in mind. I do know that the X team keeps promising features, cutting them, and then still shipping six months past their projected release dates.
Novell has guys working on Mono, Evolution, OOo, KDE, Gnome, the kernel, etc. What I don't see a whole lot of is major distro companies (Red Hat, Novell, Canonical) paying for major upstream development with X. Maybe it just needs a little more love, some deprecation of old cruft, and a new forward-thinking design. There seems to be somewhat of a future direction (GEM, DRI2, MPX), but perhaps X needs a revolution.
Is Wayland a step in the right direction?
What to make of ignorant flamebait? (Score:4, Interesting)
"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.
Vive la X (Score:3, Interesting)
I've noticed that X unfortunately gets a lot of metaphorical rotten vegetables thrown at it from Linux users; even people who apparently are fans of Linux in every other respect.
In my own opinion, however, X qualifies as one of the greatest pieces of software ever written. Put it in perspective, here; the system has been in continual use and evolution since 1984. That's 25 years this year. Granted, its' configuration process in particular has needed radical reform, and fortunately it has recently got it.
I don't understand why people criticise its' stability, either; for me it has always been rock solid, particularly on FreeBSD.
I'm also not really surprised that Chrome might run faster under X than under Windows or the Mac. If there's one thing that's always been true of UNIX in general, it's that the system doesn't include unnecessary frills. When you're wanting to be optimised for speed in particular, that can only be a good thing.
I love X.
Re:Windows and OS X versions, please. (Score:4, Interesting)
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.
Re: (Score:2)
No. It's MacOS 10. OS X is just stupid intentionally confusing terminology.
X is the Roman numeral for 10. It's "Mac OS X", which I pronounce as "Mac oh-ess ten".
Re: (Score:2)
Re:Windows and OS X versions, please. (Score:5, Informative)
Funny, but the real answer is GDI.
http://en.wikipedia.org/wiki/Graphics_Device_Interface [wikipedia.org]
Re:Windows and OS X versions, please. (Score:4, Informative)
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.
Re: (Score:3, Insightful)
Re: (Score:3, Insightful)
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.
Re: (Score:3, Informative)
Us losers? Are you implying that somehow you are exempt from being a loser while still posting to slashdot just because you are anonymous?
An anonymous coward who knows what he or she is talking about is far more valuable than a poster with an account who doesn't.
Re:Even if X is usually slower... (Score:5, Insightful)
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.
Re:Even if X is usually slower... (Score:5, Funny)
Re:Even if X is usually slower... (Score:4, Funny)
Re: (Score:3, Informative)
Framebuffer is an unaccelerated bitmap display, X11 is an accelerated graphics layer (that can use a framebuffer)
something that writes directly to a framebuffer is going to need a lot of additional programming in order to be as fast as X11 is.
Re: (Score:3, Insightful)
X has it's problems. It also has it's advantages. Some of those
advantages aren't so much a matter of X itself but side effects
of the old school Unix way of approaching a problem.
Seeing MacOS going through vnc side by side with X apps being
run remotely (and viewed locally) certainly gives me no
burning desire to get rid of X.
Re: (Score:2)
"X window system" not "X window"
Re: (Score:3, Informative)
This doesn't say it's optimized for Linux - it says that it runs well on *X11*. X11 is used on almost all Unix derivatives, not just Linux. Most importantly though, all indications are that while Google intends to use Linux (the kernel) for ChromeOS, they have made some statements that would indicate that they likely will not use X11.
Re: (Score:3, Interesting)
No - ChromeOS is looking to be an actual honest to goodness OS built around the Linux kernel with a Google-developed graphics subsystem. They are mainly targetting it towards running their own web applications rather than bundling apps with it as is the case with most other OS's, so the only INCLUDED app might be Chromium, but all indications are that developers will be able to write/port other applications to the system if they desired.
Personally I'm interested in seeing it. It's just an opinion, but mos
Re: (Score:2, Funny)
Re: (Score:2)
bullshit. my digital clock stopped and now its never right.
Re: (Score:3, Informative)
It certainly works much faster than Firefox on Linux in most circumstances. One thing I have noticed, though, is that Flash applications seem to run much more slowly in Chrome than in Firefox (to the point where Chrome becomes unusable on my computer for some sites that run acceptably in Firefox.) That seems a little weird to me, since it's the same plugin. Hopefully it's a problem that will be corrected before the official Linux release.
That and the lack of a decent ad blocker are the main things that k