Slashdot Mirror


Who Has Faster Pipes? Linux, Win2000, WinXP Compared

SeaBait writes: "This revealing article about the High-performance programming techniques on Linux and Windows shows that Linux rules. The performance testing was on Pipes(interprocess communication mechanism available on both Windows and Linux and UNIX). Although I new Linux would fare the best, the poor performance of Windows XP was a surprise. Windows 2000 actually did better than XP!"

33 of 534 comments (clear)

  1. Premature by johnnyb · · Score: 4, Insightful

    This is very premature. This was only testing ONE aspect of Windows vs Linux, which is not even used very much in the Windows world. This is meant to be an overall test of Windows vs Linux in performance, but the article is going to span over several weeks/months. Only after the series is finished will a good comparison be made. To say that Linux rocks just because it's pipes are faster means jack squat. What if Windows sockets are faster? What if Windows Disk IO is faster? What about Windows Asynchronous I/O? Eventually, this article series will answer such questions. However, this article ONLY answered the question of whose pipes are faster. Nothing else should be read into it.

    1. Re:Premature by tmark · · Score: 5, Insightful

      What if Windows sockets are faster? What if Windows Disk IO is faster? What about Windows Asynchronous I/O?

      I would expect that if any benchmarks came out favoring Windows, and if they were reported here, they would be roundly and loudly shot down with 1) criticisms of the testing protocol, and/or 2) criticisms of the bias of the testing agency. Of course, the same criticisms are just as valid in this case, but of course they are here largely ignored (one poster so far excepted).

      All of which just goes to show that the essence of the whole 'Linux-rocks/Windows-sucks' horse that is always being flogged here is that this horse is ultimately flogged by (sometimes blind) faith. Few of the Linux zealots here are going to believe any benchmark/test unless it favors Linux (in which case, they will all praise the study to high heaven) - just look at the lengths people here go to argue that GNOME/KDE provide better-than-mediocre desktops. Similarly, few Windows advocates are going to be convinced that their platform of choice is inferior.

      Since all these articles thus amount to preaching to the converted, I suggest that the Slashdot editing team hereafter mark all such articles of theirs as 'Redundant'.

      Hey, why can't we rate parent Slashdot articles, anyways ??

    2. Re:Premature by jgerman · · Score: 3, Insightful

      Uh the reason so many people will pick apart studies claiming Windows superiority is because heistory has shown us that they are usually untrue. I know Linux is technically superior to Windows I know Linux is more powerful than Windows, I don't need a study to prove it. And as far as Linux desktops being mediocre, that's entirely a matter of opinion. I love my GNOME desktop, I love the fact that it's more powerful, flexible, and customizable than Windows. And I really love the fact that my linux workstation works the way it's supposed to and doesn't constantly crash.

      --
      I'm the big fish in the big pond bitch.
  2. pipes for IPC on windows? by kangasloth · · Score: 5, Insightful

    Who you kidding? I'm no windows developer, but even I know you don't use pipes for IPC in windows, it's all COM. COM on windows versus CORBA or DCOP might be interesting.

    1. Re:pipes for IPC on windows? by WasterDave · · Score: 3, Insightful

      Yes and no. Sure, I never used pipes on windows but I did use the message passing mechanism some times. Interestingly enough this is the low level mechanism used by COM to do interprocess comms.

      That would have been a better test.

      BTW, The source code examples in the article did a great job of reminding me why I hate coding for windows :)

      Dave

      --
      I write a blog now, you should be afraid.
  3. And yet it still sells... by MosesJones · · Score: 4, Insightful

    You'd almost think that a half-decent GUI and a huge set of tools were the most important things rather than inter-process communication.

    Amazing. Stunningly the IBM OS/390 wipes the floor with all of these entries. Great desktop machine. Linux is a good OS, its not the best, it doesn't beat Solaris for reliability, it doesn't beat Windows for usability, and it doesn't come near the Mainframe architectures for speed. But it does have its place, but petty things like this are surely pointless. If a HCI group found that Linux was _easier_ to use, then that would be something to applaud but in the days of Gigabit networks and massive processor speeds and huge RAM these sorts of performance things are less important than ever.

    The key to success is ease of use, ease of deployment, Linux is getting there, but having fast pipes won't progress it.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:And yet it still sells... by johnnyb · · Score: 3, Insightful

      Inter-process communication is an extremely important factor. Specifically, if your application uses a lot of it.

      It's not the only thing, but it is pretty major.

      If there's a bottleneck, that means poor scaling of applications to larger loads.

      There's a lot that's not in the article, and the article itself says so. There's no information on sockets, RPC, or other means of IPC. That is all coming in future articles. However, it is silly to say that IPC speeds are not worthwhile.

    2. Re:And yet it still sells... by jgerman · · Score: 5, Insightful

      , but petty things like this are surely pointless. If a HCI group found that Linux was _easier_ to use, then that would be something to applaud but in the days of Gigabit networks and massive processor speeds and huge RAM these sorts of performance things are less important than ever.


      Thus spake the virgin programmer. That bullshit about hardware invalidating the need for fast efficient code, is the bullshit rhetoric taught in college classes that brought us the blue screen of death in the first place. Speed and performance do matter as does not hogging memory and efficiency. You will always run into limits on what a machine can do, and in the case of business, writing code that allows 5 servers to do the work of ten at helf the bandwidth is a big deal.


      The key to success has already been gained by Linux, it is used by the people who matter (not matter as in personal worth but matter as in matter to the advancement of computing). I couldn't give two shits about Joe Schmoe who wants to check his email and surf for porn, let him use Windows, it's not necessary for everyone to use the same operating system. Use the right tool for the job, and for developement *nix is the best tool.

      --
      I'm the big fish in the big pond bitch.
    3. Re:And yet it still sells... by aardvarkjoe · · Score: 3, Insightful
      From what I've seen, you're half right -- CS professors would never say "just make it work." But they wouldn't want you to strive for elegance, either. The job of CS professors is to churn out immeasurable numbers of the mindless Java programmers that the industry wants, solely so that the school can claim "Look! 94% of our graduates got a job!" and lure in more future drones. (Of course, this is only bad if you believe that the job of a university is to educate rather than simply sell off all its students. If you think the latter, then go ahead and skip the rest of this post/moderate accordingly.)


      Object-oriented programming and other "silver bullets" have been around for awhile. Bill Gates, while he may not be a legendary programmer, isn't the guy who's creating those BSODs now. It's the newer people, straight out of college, whose idea of important algorithms includes bubble sorting and who only have a 50-50 chance of distinguishing a pointer from a coconut. New programming methodologies won't make programs better -- only better educated programmers can do that.

      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
  4. Re:Tired by MaxwellStreet · · Score: 2, Insightful

    You know, if you want to come off as being fair and circumspect about these things - and not as a flame or troll - you might want to reconsider that last paragraph.

    Successful business(sic) don't use linux?

    Please - you're as guilty of the bias you're complaining about as the story is.

  5. Re:Can you say "flamebait"? by benwb · · Score: 4, Insightful

    Especially since Pipes are basically unused for server applications on Windows. The only significant place that Microsoft still recommends their use is when your connecting to a SQL Server database that resides on the same box as you components. Other than that you're pretty much dealing with console processes. Windows has much better IPC mechanism (COM and COM+ Events and Method Calls, Local Procedure Calls, Memory Mapped Files...)

  6. Re:Can you say "flamebait"? by little+alfalfa · · Score: 5, Insightful

    The big deal about this one is that the testing is done by a real company. It's written by a senior programmer at IBM. Many of us would hesitate to dismiss what he says here. This is not some sponsored study as were many tests that have been done in the past.

  7. Re:Written by IBM? by ChadAmberg · · Score: 2, Insightful

    Lets see... IBM supports Linux... but guess what? They make a hell of a lot more money selling Windows systems. Both Desktop and Server. And look at IBM services? They're just going to suddenly roll over and say we don't support Windows anymore?

    Sheesh people. IBM is way too big. This guy writing the article has nothing to do with marketing, he's a programmer or in R&D. Sure he's a Linux advocate. But something this minor doesn't make it in the conspiracy business...

  8. Re:Windows has pipes? by DMilor · · Score: 2, Insightful

    Since when is a shell (decent or otherwise) required to use pipes?

    Pipes are for communicating between various process *including* those launched from a GUI.

    Granted the Windows shell is cack - but then the GUI is so good who needs any more than a basic shell?

  9. Hardware manufacturers want slow software. by Futurepower(tm) · · Score: 4, Insightful


    "... the poor performance of Windows XP was a surprise. Windows 2000 actually did better than XP!"

    This has been happening since the days of the VAX minicomputers, and probably before. Hardware manufacturers want slow, poor performing software, because that makes users buy more hardware. Most of Microsoft's sales are to hardware manufacturers, not to users.


    Secrecy destroys democracy: What should be the Response to Violence?

    --
    Bush's education improvements were
  10. Of course it's a trustworth report... by szcx · · Score: 3, Insightful

    It's not like IBM has anything to gain from publishing a comparison of this kind.

  11. Re:Can you say "flamebait"? by zangdesign · · Score: 2, Insightful

    And IBM has a vested interest in the success of what operating system? Maybe ... Li-NUX?

    It all depends on who you trust - me, I don't trust any camp, MS or OS. There's just too much religious fanaticism and not enough rational discussion on either side.

    Well, at least not here anyway.

    --
    To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
  12. Re:Written by IBM? by johnnyb · · Score: 4, Insightful

    The nice thing about the tests is that all of the information about the tests are published, as well as the scope of what the test means (it has a very small scope of applicability). So, it's easy for anyone to reproduce the tests, and mention any problems with the tests.

  13. Articles this guy writes are trite... by maroberts · · Score: 3, Insightful

    If you've read the the other article(s) (how long it takes to perform a memcpy) in this series, it seems he is trying to desparately find holes where he can say "Linux is better".

    For the record I have 4 PCs, 1 of which runs Linux permanently, the other 3 being dual boot. Desipite being in favour of Linux, these articles give benchmarking a bad name. Most rounded benchmarks show Linux about equal (with some pluses and minuses) to Windows performance, which for me is good enough, since given you can have Linux for free, why pay for an OS that is only just as good ?

    --

    Donte Alistair Anderson Roberts - hi son!
    Karma: Chameleon

    1. Re:Articles this guy writes are trite... by johnnyb · · Score: 3, Insightful

      No, they are stepping stones. He himself says that he hasn't written anything of use yet, but that he is building the foundation for it.

      Each article goes into depth over a single API call, and compares the systems.

      When he gets through about 10-15 articles, he will probably have something useful. Especially since he carefully explains his methodology and reasoning behind each step. This is much better than the traditional benchmarks which do 1 mammoth test and say X is better than Y. In this article series, he's going down and testing, in depth, feature by feature.

  14. Re:My Experience with the Linux Operational System by MindStalker · · Score: 3, Insightful

    Ok, I don't know why you bothered posting this, probably pointless flamage you post freqently, but I just thought I'd comment. First of all your VB experience doesn't mean anything in linux, I'm pretty sure there isn't a linux compiler for VB. Second of all you said you configured the system from scratch, and recompiled all the programs in what you believed to be a better compiler. Sounds to me like you built everything yourself, then blamed someone else when it didn't all work perfectly. Personally I have never (never meaning sometime after linux became well known, of course in the early days in had to be done by scratch) heard of anyone who first introduced themselves to linux without the help of a basic distribution. So either your a lier, or an idiot.
    Posting +1 cause I have karma to burn!!

  15. Of course Win2k did better than XP by WildBeast · · Score: 2, Insightful

    They compared the Win2k Advanced Server version to the WinXP Desktop version. As we all know, IBM isn't biased at all :)

  16. Pipe speeds by jd · · Score: 5, Insightful
    The relevence of this comparison escapes me, for the moment. Hey, I'm no Windows fan, but most benchtests for ANY one parameter invariably produce a wildly misleading result.


    Some things to ponder:

    • How fast are Linux pipes, if you patch the kernel with LSM? MOSIX? A different scheduler? (eg: RTSCHED, RT-Linux, RTHAL, HP's Scheduler Plugin Architecture?)
    • How long can a given OS sustain a given data rate, under different conditions? (eg: Many processes running, non-interruptable events, miltiple processors, etc.)
    • What kind of resources are consumed, per pipe, per unit of data, per unit time? Do any of the OS' allow/use smoothing, to reduce system load?
    • What results do you get for architectures at the extreme ends of each OS? (ie: Compare ALL the OS' on the minimum suggested and maximum usable settings for Linux, Windows XP, Windows 2000. See if there is a range in which one OS has the advantage, rather than assuming that if it has the advantage at one point, it must have the advantage always.)


    This is not to diss IBM, or even to suggest Windows XP/2000 would even win in such a battle, although I suspect they would for massive SMP arrays, simply because Linux doesn't handle those as well.


    I also suspect Linux would find itself struggling, when put into a hard real-time setting, an ultra-secure setting, or a distributed setting. The overheads involved would not be huge, but if you have a huge number of processes, each with the maximum number of open pipes, the overheads are being applied a huge number of times. That adds up.


    All in all, this suggests that some really severe, rigorous benchmarking needs to be done, under a wide enough variety of conditions to be meaningful. This test just doesn't meet the kinds of conditions I'd expect from a truly determined test.


    Now, if I can only convince IBM to loan me a few dozen boxes, I'd be more than happy to do the testing for them... :)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  17. Read the article first. by lcsjk · · Score: 2, Insightful

    The article mentioned is well written and informative. Based on the comments, many people comment on the substance based on the lead-in Slashdot posting. I say, before you comment on things like "Home version" or "biased", you should learn to read.

  18. Re:This should come as no surprise by Anonymous Coward · · Score: 2, Insightful

    First of all IPC isn't as important in Windows because Windows developers drew on many years of experience of other OS developers and wrote it to support threads from the start. Yes we still need IPC but we can also choose to have code run in the same process and avoid a lot of overhead.

    Second, pipes aren't the prefered IPC mechanism in Windows like i'm guessing they are in Linux. So you're only complaing that Windows doesn't work like Linux.

    Pipes do have access control. And it's a lot more flexible than three sets of RWX flags.

    Windows also provides semaphores, shm, messages, as well as the socket based facilities for IPC.

    OOB may be provided by sockets. Not sure here.

  19. Read the Headline by Kaypro · · Score: 3, Insightful

    This is just saying which OS has faster pipes:

    Linux or Win2K

    (We can eliminate IBM's so called XP comparison....doesn't seem to have much basis)

    All IBM is saying is that if you have some specific app that absolutely needs to have best pipe speed/bandwidth then install LINUX damn it!

    This is not:

    Linux vs Windows
    Linux is harder/easier than Windows
    Linux Rox, Windows Sux
    Windows Rox, Linux Sux
    Tux smashes Windows, news at 11

    Grow up people: When will people realize that there is not one defacto OS standard.

    I love Linux
    I love Windows

    I use Linux for Web Server/FTP Server/IMAP server/DNS/filesharing/

    I use Windows for browsing the web, playing games, Designing web pages, etc.

    Why? Simply because I use the whatever works for whatever I need.

    Why must we have one OS that does everything?

    Seriosly.... if there is some solid reason please tell.

    Just my 2 cents...

  20. Re:Can you say "flamebait"? by drinkypoo · · Score: 3, Insightful
    Yeah, but you can't do quick/simple things like, i dunno, create a named pipe that you can print to, and it will create a PDF file instead (daemon listening to the named pipe just pipes to ps2pdf). Not a great example, but you get the point.

    You can create named pipes; The OS-supplied ones include CON:, NUL:, PRN:, and so on. It is in fact possible to create new ones.

    It's still better to have printer drivers, though. It's a feature that UNIX needs (and is getting, of course, through that new printing system whose name I forgot, and the linking of which someone else will probably get karma for.) Printer drivers are user friendly.

    Why use complex sockets when you don't really need them? Later extensibility. Of course, if you're the only one who will ever see your code, you're right, it doesn't really matter.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  21. Run on a Thinkpad? by corky6921 · · Score: 4, Insightful

    In the discussion forums, the guy who posted these results admits, "I ran the tests on a thinkpad."

    I'm sorry, but what does this prove? Linux runs better on a laptop? Is he comparing Linux, the server OS, to Windows 2000 Pro, the consumer OS? What version of Windows XP is he running?

    These tests are really subjective, not only because pipes aren't really used in Windows, but also because he used a laptop to test it (and didn't give details of the Windows OSes he was running.) If anything, I wish he would have used some bigger iron (a Xeon-based system, perhaps, or some of IBM's middle-of-the-line servers.)

    I think the best conclusion we can draw from this is that Linux may indeed be a better OS than Windows in some ways, but that this test doesn't prove it.

  22. Unix Sockets by rootmonkey · · Score: 2, Insightful

    I think an intersting comparison would be winxp's implemention of unix sockets compared against Linux's implementation.

    --

    Yes but every time I try to see it your way, I get a headache.
  23. Named pipes vs. unnamed pipes? by Ablar · · Score: 2, Insightful

    Anyone else bothered by the fact that the tests on Windows were using named pipes while the Linux ones were using unnamed pipes? I'm rather certain that named pipes would be slower in the first place...

  24. The real surprise by Baconator · · Score: 2, Insightful
    ...is the Win2K vs. Win XP results. As everyone (including the author of the article) has pointed out, pipes don't play a very important role in Windows -- so it's perhaps true that the Linux vs. Windows comparison isn't very meaningful.

    However, the significant performance degradation in any feature from one version of Windows to the next is a pretty damning result. It would seem to legitimize the feeling that many Windows users have that XP is a big downgrade from 2K.

  25. Re:This should come as no surprise by Anonymous Coward · · Score: 3, Insightful
    A few points of order:

    Windows pipes aren't in the filing system, they are in the kernel namespace - which is to all intents and purposes equivalent to /dev.

    Windows kernel objects all have full access control, including pipes.

    Windows provides all those IPC mechanisms you mention, and more, including IO Completion Ports which are VERY fast [a friend just implemented a 160us turnaround on a raw socket under WinNT in user space using IO Completion Ports].

    Windows pipes are files just like Linux pipes, so they are not at all harder to program. In fact, with variable buffer sizes they can be a lot easier to manage.

  26. I actually find this study useful... by Tord · · Score: 3, Insightful

    I see a lot of comments here bashing the article for not giving the whole picture and you're right, it doesn't give the whole picture, but neither was it intended to.

    As a programmer doing cross-platform software development I find it interesting and useful. What I want to know is that if I use pipes for IPC, how does it affect performance on the different platforms? I'm not interested in any additional features of Microsoft's implementation of it, because in my project I just want an easy, simple and fast way for cross-program communication that works very similarly on all platforms.

    When I wrote BladeEnc I envisioned that the pipe-support I included in around 0.80 would be useful for using BladeEnc in for example realtime recording applications. Now I know that solution would give quite some performance penalty on WinXP systems and thanks to the detailed graphs I also know better how to tweak the size of the chunks I send/receive to gain some performance.

    Take this article for what it is, a guiding light for software developers that helps them to write better and more efficient applications. It was written by a programmer for programmers (it's on developerWorks) and doesn't make any claims to be a valid benchmark between the platforms in general. It just shows what performance you can expect on different platforms if you use pipes in the most simple way for IPC, combined with different chunksizes.