'Unix beats Windows' - says Microsoft!
Summary: So why is this interesting? because their test methods reflect Windows internals, not Unix kerneldesign. There are better, faster, ways of doing these thingsin Unix, but these guys - among the best and brightest programmers working at Microsoft-either didn't know or didn't care.
What's noteworthy about it is that Microsoft compared Singularity to FreeBSD and Linux as well as Windows/XP - and almost every result shows Windows losing to the two Unix variants.
For example, they show the number of CPU cycles needed to "create and start a process" as 1,032,000 for FreeBSD, 719,000 for Linux, and 5,376,000 for Windows/XP. Similarly they provide four graphs comparing raw disk I/O and show the Unix variants beating Windows/XP in three (and a half) of the four cases.
Oddly, however, it's the cases in which they report Windows/XP as beating Unix that are the most interesting. There are three examples of this: one in which they count the CPU cycles needed for a "thread yield" as 911 for FreeBSD, 906 for Linux, and 753 for Windows XP; one in which they count CPU cycles for a "2 thread wait-set ping pong" as 4,707 for FreeBSD, 4,041 for Linux, and 1,658 for Windows/XP; and, one in which they report that "for the sequential read operations, Windows XP performed significantly better than the other systems for block sizes less than 8 kilobytes."
So how did they get these results?
The sequential tests read or wrote 512MB of data from the same portion of the hard disk. The random read and write tests performed 1000 operations on the same sequences of blocks on the disk. The tests were single threaded and performed synchronous raw I/O. Each test was run seven times and the results averaged.
umm...
The Unix thread tests ran on user-space scheduled pthreads. Kernel scheduled threads performed significantly worse. The "wait-set ping pong" test measured the cost of switching between two threads in the same process through a synchronization object. The "2 message ping pong" measured the cost of sending a 1-byte message from one process to another and then back to the original process. On Unix, we used sockets, on Windows, a named pipe, and on Singularity, a channel.
So why is this interesting? Because their test methods reflect Windows internals, not Unix kernel design. There are better, faster, ways of doing these things in Unix, but these guys - among the best and brightest programmers working at Microsoft- either didn't know or didn't care.
And if they're the best and brightest, what do you think happens when the average Microsoft programming whiz gets asked to program for Linux?
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
More evidence
You really want to make these "big" statements?
I can compare the PERFORMANCE of an OS to that of another, using unbiased benchmars and experimental conditions. No?
Beacuse what matters is the performance EXPERIENCED (as view) from the application perspective. No?
It is fairly "simple" to compile the same benchmarks on the various OS platforms and then carry out the experiments.
I can launch multithreaded code and test the cost syncr. and scheduling of the various threads. Semaphores, mutexlocks, and other IPC mechanisms are found on ALL systems. Why couldn't someone measure these times?
I can do memory, network I/O, disk I/O and file I/O testing with different access patterns measured under identical conditions and tabulate the results. This is NOT nuclear science but you NEED to jave intimate understanding of internals and basic statistics so that you will not taint the results inadvertandly (or intentionally like someOUne else I know)
WHY again the comparisons are meaningless?
You are not a developer that's why you cannot see the connection between the cost of various OS services to application performance.
Visit the http://www.spec.org to get an IDEA of benchmarking. This is by NO means an exhaustive performance comparison of platforms but it is a start.
--m
Benchmarks are
You really want to make these "big" statements?
I can compare the PERFORMANCE of an OS to that of another, using unbiased benchmars and experimental conditions. No?
Beacuse what matters is the performance EXPERIENCED (as view) from the application perspective. No?
It is fairly "simple" to compile the same benchmarks on the various OS platforms and then carry out the experiments.
I can launch multithreaded code and test the cost syncr. and scheduling of the various threads. Semaphores, mutexlocks, and other IPC mechanisms are found on ALL systems. Why couldn't someone measure these times?
I can do memory, network I/O, disk I/O and file I/O testing with different access patterns measured under identical conditions and tabulate the results. This is NOT nuclear science but you NEED to jave intimate understanding of internals and basic statistics so that you will not taint the results inadvertandly (or intentionally like someOUne else I know)
WHY again the comparisons are meaningless?
You are not a developer that's why you cannot see the connection between the cost of various OS services to application performance.
Visit the http://www.spec.org to get an IDEA of benchmarking. This is by NO means an exhaustive performance comparison of platforms but it is a start.
--m
Definately agree
more evdence
Singularity Kernel Looks Interesting
<sarcasm>But how will IE ever be able to operate if it's not part of the OS?</sarcasm>
A good read.
The Banjo
Agreed - very interesting indeed
(unlike factotum) are not well designed for portability. In fact, from what they've said, I'd guess this thing would work more or less ok on AMD, work well on PowerPC and SPARC, and pretty much dog it on products like celeron and the P4.
Well well
Too funny.
funny how you omit and misrepresent facts
Also why is it that x86 from ADM is just OK. Are you comparing 32 bit x86 to 64 bit PPC, Sparc for data intensive applications to say that AMD would work more or less ok.
More on Singularity
http://channel9.msdn.com/Showpost.aspx?postid=68302
And how often...
Seems to me it can (and does) work both ways.
Carl Rapson
Good point(nt)
Sure .. but we're right
Paul...
The fact that you recede it with "In all seriousness..." is even more distressing.
Carl Rapson
Every single stratum of them..
i.e. It's not possible to meet every Windows programmer, but I've certainly worked with hundreds and since sampling theory supports the notion that polling them at random would produce results applicable to all of them as a population...
Now, you could argue that my experience doesn't reflect a random hike through their ranks - but how would you support that? or, put another way: I can't say all men are taller than all women, but I certainly can say that the average man is taller than the average woman. And if sampling theory allows that, why not other experience?
Not in my opinion
I don't think so, and for precisely the reason you mention: your experience isn't sufficiently representative of the entire population. I don't think anyone can legitimately claim that their personal experience constitutes a sufficiently large and random sampling of the entire population to be able to draw generalizations (especially considering the size of the Windows programmer population). COnsidering that your field of expertise is Unix, I'd expect that your experience "sampling" is biased toward Unix and away from Windows, just as I'd expect a Windows programmer's would be biased against Unix. That's why I don't buy such generalizations from either side.
I don't think your height analogy isn't quite an exact match, either. We can generalize that "most men are taller than most women" because we can obtain separate, scientific evidence of such, outside of our own personal experience. We can find genetic evidence of the height difference between men and women. We can see, through the various media, a vastly larger sampling of the entire human population than we can possible interact with. How many Windows programmers are there toiling away at home and within small-to-large corporations that no pundit ever "sees"?
Most of the "evidence" that Unix is "better" than Windows consists of an innate bias against Windows and a refusal to recognize the differences in the platforms. Windows programmers who attempt to work in Linux using Windows paradigms are called incompetent, but Linux programmers who attempt to work in Windows using Unix paradigms are called superior. When Unix is held up as not only the ideal but the ultimate OS, how can Windows not suffer in comparision? The deck is stacked before you begin.
Carl Rapson
Agreed - but I wasn't being totally serious
And, by the way, your comment:
" Windows programmers who attempt to work in Linux using Windows paradigms are called incompetent, but Linux programmers who attempt to work in Windows using Unix paradigms are called superior"
leads me to a request: wanna proof read/argue with a 50 page doc for me? if so, please get in touch.
OT - proof read
Carl Rapson
Sorry, they don't
Developers don't spend a lot of time understanding system internals. They read the manuals to find a function that does what they think they need to get the job done, typically by looking for one with the same name as they are familiar with.
And that is often not the best answer.