Slashdot Mirror


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?"

31 of 542 comments (clear)

  1. Test of time by Anonymous Coward · · 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.

    1. Re:Test of time by eugene2k · · Score: 5, Funny

      Why is this modded funny?

      --
      Apple has "Mac vs PC", Microsoft has "Laptop Hunters", Linux has recession
    2. Re:Test of time by Yvan256 · · Score: 4, Funny

      Forget about the gp, why is THIS modded funny?

    3. Re:Test of time by supersloshy · · Score: 4, Funny

      And God forbid that I continue the joke and say, "Why is /THIS/ modded funny!?"

      --
      "Our country is not nearly so overrun with the bigoted as it is overrun with the broadminded." -Archbishop Fulton Sheen
    4. Re:Test of time by awshidahak · · Score: 4, Funny

      Ooh, ooh, I wanna be cool and popular. Why is /THIS/ modded funny!?!?!?!?!?!?!?. Dang, where's the confused smiley button.

  2. X11 has never been a problem. by miffo.swe · · 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.

    --
    HTTP/1.1 400
    1. Re:X11 has never been a problem. by jellomizer · · 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.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:X11 has never been a problem. by pz · · 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.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    3. Re:X11 has never been a problem. by MikeBabcock · · 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.

      --
      - Michael T. Babcock (Yes, I blog)
    4. Re:X11 has never been a problem. by Elbows · · 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.

    5. Re:X11 has never been a problem. by thePowerOfGrayskull · · Score: 4, Informative

      The problem is that when monitoring processes, people can "see" X11 using CPU cycles, whereas in Windows they only "see" the application doing. It's six of one, half dozen of the other -- but it makes it look like X11 is CPU-resource intensive. In reality, the same cycles are used for windows based apps (perhaps more? I certainly don't know...), but they look like the app using the CPU which is somehow more expected.

    6. Re:X11 has never been a problem. by JesseMcDonald · · Score: 4, 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.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    7. Re:X11 has never been a problem. by Microlith · · 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.

    8. Re:X11 has never been a problem. by JamesP · · Score: 4, 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...)

      --
      how long until /. fixes commenting on Chrome?
  3. Re:Even if X is usually slower... by Anonymous Coward · · 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.

  4. 20% faster on his 20% faster machine.... by Thantik · · 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

  5. Choosing the correct abstraction layer by FranTaylor · · 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.

    1. Re:Choosing the correct abstraction layer by dpilot · · Score: 4, 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.

      --
      The living have better things to do than to continue hating the dead.
    2. Re:Choosing the correct abstraction layer by JasterBobaMereel · · 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

      --
      Puteulanus fenestra mortis
  6. Memcpy not the biggest problem for chrome/chromium by iamsquicky · · 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...

  7. X11 is not bloated by dvh.tosomja · · 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.

  8. Other performance gains by Enderandrew · · Score: 4, 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?

    --
    http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    1. Re:Other performance gains by Anonymous Coward · · Score: 5, Funny

      A Qt build of chromium exists, and is normally known as "konqueror".

  9. Re:Even if X is usually slower... by everynerd · · Score: 5, Funny

    Give the guy a break. He's only trying to create synergy among web-enabled paradigms.

  10. Re:Windows and OS X versions, please. by Xtravar · · Score: 5, Informative

    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.
  11. Uninformed and wrong by FranTaylor · · 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.

  12. Re:So in other words by sarhjinian · · 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. It's worth reading if you're wondering why X drives people nuts.

    --
    --srj/mmv
  13. Re:So in other words by Bigjeff5 · · Score: 4, 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.

    --
    Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  14. Re:So in other words by Bigjeff5 · · Score: 4, 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.

    ...it was optimised to be as fast as possible within the design limitations it had

    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.

    --
    Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  15. Oh dear. So wrong. by Anonymous Coward · · 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?)

  16. Re:So in other words by Tanktalus · · 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 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.