C++ iostreams are built on top of C io functions, no?
But they shouldn't be built on top of printf, but rather primitives like read and write.
The last time I benchmarked cout was a while back, so things might have changed, but they were ridiculously slow compared with straight C, at least in the libraries I was using.
GCC's implementation, unfortunately, sucks a lot, performancewise.
The problem is that g++ probably does not optimise it all inline, whereas the particular java VM he has chosen to use probably does.
Although defining the Toggle variables with auto storage class may give g++ the hint it needs to realise this.
He passed -O2 to gcc, which does not enable any function inlining. GCC doesn't need any more hints here, it needs a single compiler option that the author is too ignorant/biased to figure out.
Btw, only idiots would create C++ structures/objects with several K in size
I take that back since these days stack size does not have relevant hard limits anymore. Structures containing bulk data may occasionally be useful if the size of the data is fixed.
Ok, I hate to feed the trolls but fuck it... He posted:
You hate to feed yourself, troll?
Now look at my post--I wasn't addressing the heap vs. stack issue directly--I was just answering his question. Indirectly I did address the stack issue because, pesumably, a big and nasty object with more than a couple k worth of instance data would never want to be put on the stack anyway! Stop acting like a lawyer, dude.
His question - by the letter - was about allocation. But by the spirit it was about heap allocation. It's you who's either unable to comprehend, or acting like a lawyer. Btw, only idiots would create C++ structures/objects with several K in size (large allocations should use a pointer to the heap), and the structure in question certainly is much smaller.
You have made clear you don't have a solid idea of what C++ code generation looks like..
You've made it very clear that you don't know the f*cking difference between heap and stack allocation in C++. Now go feed yourself, or don't.
They put it under the non-commerical varient? That strikes me as a bit boneheaded. They should have used the by-sa which allows commerical use. There's quite a bit of money to be made selling hard copys of the text- not many people want to read hundreds of pages of text of a computer screen.
I think it's too restrictive as well. I've read some 40 pages of the German WikiReader Internet by now, and, while it's certainly not perfect yet, it's definitely a fine thing, and I hope it's going to be a success. Many people prefer printed books over Internet content, and a non-commercial license pretty much prohibits printing - unless you would give the books away for free (think about the costs). What matters IMO is that the content is free-as-in-speech, and not the idea that nobody can make any profit based on it. You even have to publish the GNU FDL in any book that uses this content, so if you would overcharge people for free content, they would easily find out.
Modern JVMs can actually inline many virtual method calls.
And this is another reason why the test is unfair - he used the -O2 option to GCC, which does not enable function inlining. He should've used -O3.
At first, I thought the test was rigged. But according to one variant of Occam's Razor, never attribute to malice what can be explained by plain stupidity. He's probably just an idiot.
Are the two licenses incompatable, or are they just trying to start a competing product? This is a serious question, I've not read the details of either license, and I think competition is good for all involved.
The given Creative Commons license prohibits commercial usage of the material. The GNU FDL permits it - for example, the German Wikipedia is now selling printed copies of its first WikiReader book. This makes it impossible to import OpenTextBook content into Wikipedia.
The other way round, the GNU FDL requires that all derivative works permit commercial usage as well, which makes it impossible to put WikiBooks content into OpenTextBook (copyleft). Fair use would be an exception.
Why do they go for CMP instead of SMT? Simple. They're trying to sell desktop processors. SMT has the huge drawback that you can typically only run two threads of the same process in parallel. However, on the desktop, many programs aren't multi-threaded at all, or if they are, then they (being designed for machines with only one path of execution at a time) they do not parallelize their workload efficiently between threads. For example, in a CD ripping application, one thread may be responsible for all the MP3 encoding workload, while the GUI thread would just sit there, idling away SMT CPU clocks.
On a server machine, SMT may often buy you big benefits in terms of performance, since many server applications are massively multi-threaded and designed for load balancing between execution units. Not so on a desktop machine, where you're rather interested in a system that remains responsive although you're running multiple CPU-intensive processes at the same time (e.g. word processor, video/audio encoder, some Java applications...). The benefits of SMT are quite limited there in comparison to "true" parallelism. And note that AMD processors don't suffer as badly from branch misprediction as the Pentium 4 does, which means that plain old OoO-execution still works fine for them wrt making efficient use of functional units.
As a side-note, the two technologies (CMP/SMT) are not mutually exclusive, as can be seen in the new IBM Power5, which sports 2 processor cores with 2-way SMT each.
You know what else makes the kernel crash? At least if you are using 2.6.5 or higher if you enable APIC/APIC-IO and you have an nforce chipset the system will lock up as soon as you do too much I/O.
Create a container file with UDF (64M worked for me). Mount it on loopback, and copy some large directory to it. Will lock the kernel up in no time.
But both of these require root privileges, typically. A crash bug that doesn't is much worse.
As far as stability and consistancey goes, only Debian-Stable approaches BSD, because Debian enforces a strict development and testing process (as opposed to adding in just any random unstable bleeding edge package because it is "new").
If you mean consistency of user interfaces and package versions, I guess you are right. In terms of crash-proofness, you may not.
I tried to install FreeBSD 5.2.1 a few weeks ago and the installer had a kernel panic. Now you may say that's not the stable branch, but I've heard bad things about 4.8, too, stability-wise (sure, it may work for many, depending on their hardware configuration etc). I do know some options you can enable in Linux 2.6.6 which will make your system unstable (e.g., unfortunately, XFS, if mounted), but I never had an installer crash.
Don't you mean "the source is open, but it's not Open Source" ?
The source is public, but it's not open source. Similar to DJB's software (though Povray's license admittedly is much more generous than that).
It's not *closed* source if you can download the source; if you mean "it's not GPL", why not say that?
The OSI approves many more licenses as open source, including for example the LGPL, BSDL, Apache Software License, Mozilla Public License and the Apple Public Source License. The reason for this is simply that they fulfill the OSI's definition
That makes every piece annoying enough that I doubt many people are going to want to record anything other than maybe entire programs.
It's actually so annoying that I turn off the TV/radio entirely. Same thing as those "copy-protected" CDs: To annoy a few ripoffs, they punish all of their willing customers. For me personally, the days that I played the disc-jockey are finally over. Either I can rip the music to HDD, or they can go and fsck themselves.
The most ridiculous outgrowth of the anti-copy hysteria I've seen is the quality of the sound samples at Amazon's music shop: 20 second-clips at a bitrate of (I'm not kidding!) 16kbps, even if you have broadband. This is a sick joke, especially if you consider that almost all of this music has been available at 128kbps or above in all major P2P networks. Someone pointed me to Ayreon - The Human Equation (sorry, it's in German) as an example of good recent music. I listened to the Amazon samples, and it all sounds like someone had invented a method of turning liquid feces into sound waves. I'm certainly not going to buy anything because of this ear torture. You can't even guess whether it actually sounds good in the original.
RIAA and the big labels: Please die ASAP and make way for someone who actually gives a flying fuck about their customers' needs. Thank you very much.
Where people go wrong is that it is just as illegal as it ever was to redistribute the content without permission, the only thing changing is that it is easier. Being easy to do doesn't make an argument for legalization - there were almost always things that are easy to do yet were still illegal.
AFAIK it is ilegal to broadcast music that has already been published without permission. However, you need to pay royalties.
There are lots of "features" in the Linux kernal that I have no choice but to have on my system.
What you mean is, there are a lot of features in the kernel source code that you don't need, and I agree. Unpack a kernel 2.6, and you have >250 megabytes less disk space at your disposal. However, that doesn't mean at all that all those features are loaded into memory even though you don't need them. Binary distributions tend to include all drivers as modules, however, only those you actually need are loaded into memory. The others just occupy about 13 megabytes of disk space in/lib/modules (for hundreds of drivers! compare that to the 2 megabytes the proprietary nVidia driver alone requires).
So the Linux kernel bloat argument is a myth mostly used by FreeBSD worshippers. It's true if you count the total LOC in the entire source tree - about 4 million at the time -, but it's nonsense when applied to the amount of RAM the binaries require. I happen to have used both Linux and FreeBSD, and the Linux kernel itself is usually smaller by half compared to a typical FreeBSD installation.
The problem comes when you need to load any app that's based on KDE. Then all the bloated beast is loaded into RAM. Not only then there goes your machine's RAM, you also get to wait several extra seconds for all that KDE bloat to load. Not "features", but hundreds of megabytes of pure library bloat, which you can't turn off. Whoppee.
You obviously didn't check for yourself by typing
ldd `which konqueror`
before writing this rant. Konqueror, in KDE 3.2.2, for example, uses some 10M worth of KDE libraries. That's quite a bit, but hardly "hundreds of megabytes of pure library bloat". Most other libs Konqueror uses are from X11, btw.
It is true, that KDE apps take their time to start, but the size of the libraries is not the crucial point, rather the fact that KDE is written in C++, and linking C++ programs requires a substantial amount of CPU work. The solution is to use prelinking which means the system doesn't have to dynamically link all those libraries every time a KDE app is started, but only once in a while in the background. If it was recently opened (i.e. in cache), KMail requires less than half a second to open up, display the main window, and allow interaction on my prelinked Gentoo Linux system.
You're so right! What do you need X for, when you can even play color videos on a text console?
Now the only thing that's still missing is an aalib version of pornview, and the average user could use the computer just as well in text mode as in graphical mode. Plus, since he doesn't need a mouse anymore, he can use the right hand for other activities.
It's really a cross-platform bug, but less noticible on Linux or MacOSX because those GUIs are so sluggish to begin with. (read this at -1, but it's true)
Third, maybe if the damn thing didn't have seemingly permanent memory leaks, they woudn't need these kludges.
Last time I closed Opera after several days of usage, it returned 500 megabytes of virtual memory to the system. I know that's not an excuse for Mozilla memory leaks, though.:o)
But they shouldn't be built on top of printf, but rather primitives like read and write.
GCC's implementation, unfortunately, sucks a lot, performancewise.
He passed -O2 to gcc, which does not enable any function inlining. GCC doesn't need any more hints here, it needs a single compiler option that the author is too ignorant/biased to figure out.
I take that back since these days stack size does not have relevant hard limits anymore. Structures containing bulk data may occasionally be useful if the size of the data is fixed.
You hate to feed yourself, troll?
His question - by the letter - was about allocation. But by the spirit it was about heap allocation. It's you who's either unable to comprehend, or acting like a lawyer. Btw, only idiots would create C++ structures/objects with several K in size (large allocations should use a pointer to the heap), and the structure in question certainly is much smaller.
You've made it very clear that you don't know the f*cking difference between heap and stack allocation in C++. Now go feed yourself, or don't.
I think it's too restrictive as well. I've read some 40 pages of the German WikiReader Internet by now, and, while it's certainly not perfect yet, it's definitely a fine thing, and I hope it's going to be a success. Many people prefer printed books over Internet content, and a non-commercial license pretty much prohibits printing - unless you would give the books away for free (think about the costs). What matters IMO is that the content is free-as-in-speech, and not the idea that nobody can make any profit based on it. You even have to publish the GNU FDL in any book that uses this content, so if you would overcharge people for free content, they would easily find out.
And this is another reason why the test is unfair - he used the -O2 option to GCC, which does not enable function inlining. He should've used -O3.
At first, I thought the test was rigged. But according to one variant of Occam's Razor, never attribute to malice what can be explained by plain stupidity. He's probably just an idiot.
Plus, this page won't reload itself every 10 seconds.
The given Creative Commons license prohibits commercial usage of the material. The GNU FDL permits it - for example, the German Wikipedia is now selling printed copies of its first WikiReader book. This makes it impossible to import OpenTextBook content into Wikipedia.
The other way round, the GNU FDL requires that all derivative works permit commercial usage as well, which makes it impossible to put WikiBooks content into OpenTextBook (copyleft). Fair use would be an exception.
Why do they go for CMP instead of SMT? Simple. They're trying to sell desktop processors. SMT has the huge drawback that you can typically only run two threads of the same process in parallel. However, on the desktop, many programs aren't multi-threaded at all, or if they are, then they (being designed for machines with only one path of execution at a time) they do not parallelize their workload efficiently between threads. For example, in a CD ripping application, one thread may be responsible for all the MP3 encoding workload, while the GUI thread would just sit there, idling away SMT CPU clocks.
On a server machine, SMT may often buy you big benefits in terms of performance, since many server applications are massively multi-threaded and designed for load balancing between execution units. Not so on a desktop machine, where you're rather interested in a system that remains responsive although you're running multiple CPU-intensive processes at the same time (e.g. word processor, video/audio encoder, some Java applications...). The benefits of SMT are quite limited there in comparison to "true" parallelism. And note that AMD processors don't suffer as badly from branch misprediction as the Pentium 4 does, which means that plain old OoO-execution still works fine for them wrt making efficient use of functional units.
As a side-note, the two technologies (CMP/SMT) are not mutually exclusive, as can be seen in the new IBM Power5, which sports 2 processor cores with 2-way SMT each.
Great! That will be just on time for Doom 3, Half-Life 2 and Duke Nukem Forever.
"Identify as IE" ist the default setting for Opera. So I wouldn't guess it's a geek thing at all.
Create a container file with UDF (64M worked for me). Mount it on loopback, and copy some large directory to it. Will lock the kernel up in no time.
But both of these require root privileges, typically. A crash bug that doesn't is much worse.
If you mean consistency of user interfaces and package versions, I guess you are right. In terms of crash-proofness, you may not.
I tried to install FreeBSD 5.2.1 a few weeks ago and the installer had a kernel panic. Now you may say that's not the stable branch, but I've heard bad things about 4.8, too, stability-wise (sure, it may work for many, depending on their hardware configuration etc). I do know some options you can enable in Linux 2.6.6 which will make your system unstable (e.g., unfortunately, XFS, if mounted), but I never had an installer crash.
How would Jesus browse his hard drive?
The source is public, but it's not open source. Similar to DJB's software (though Povray's license admittedly is much more generous than that).
The OSI approves many more licenses as open source, including for example the LGPL, BSDL, Apache Software License, Mozilla Public License and the Apple Public Source License. The reason for this is simply that they fulfill the OSI's definition
It's actually so annoying that I turn off the TV/radio entirely. Same thing as those "copy-protected" CDs: To annoy a few ripoffs, they punish all of their willing customers. For me personally, the days that I played the disc-jockey are finally over. Either I can rip the music to HDD, or they can go and fsck themselves.
The most ridiculous outgrowth of the anti-copy hysteria I've seen is the quality of the sound samples at Amazon's music shop: 20 second-clips at a bitrate of (I'm not kidding!) 16kbps, even if you have broadband. This is a sick joke, especially if you consider that almost all of this music has been available at 128kbps or above in all major P2P networks. Someone pointed me to Ayreon - The Human Equation (sorry, it's in German) as an example of good recent music. I listened to the Amazon samples, and it all sounds like someone had invented a method of turning liquid feces into sound waves. I'm certainly not going to buy anything because of this ear torture. You can't even guess whether it actually sounds good in the original.
RIAA and the big labels: Please die ASAP and make way for someone who actually gives a flying fuck about their customers' needs. Thank you very much.
AFAIK it is ilegal to broadcast music that has already been published without permission. However, you need to pay royalties.
You can already have Open Cola. It's GPL'ed, so if you buy a bottle from a local retailer, be sure to ask for the source code. :))
I hope you are referring to moving the mouse. ;)
What you mean is, there are a lot of features in the kernel source code that you don't need, and I agree. Unpack a kernel 2.6, and you have >250 megabytes less disk space at your disposal. However, that doesn't mean at all that all those features are loaded into memory even though you don't need them. Binary distributions tend to include all drivers as modules, however, only those you actually need are loaded into memory. The others just occupy about 13 megabytes of disk space in /lib/modules (for hundreds of drivers! compare that to the 2 megabytes the proprietary nVidia driver alone requires).
So the Linux kernel bloat argument is a myth mostly used by FreeBSD worshippers. It's true if you count the total LOC in the entire source tree - about 4 million at the time -, but it's nonsense when applied to the amount of RAM the binaries require. I happen to have used both Linux and FreeBSD, and the Linux kernel itself is usually smaller by half compared to a typical FreeBSD installation.
You obviously didn't check for yourself by typing
before writing this rant. Konqueror, in KDE 3.2.2, for example, uses some 10M worth of KDE libraries. That's quite a bit, but hardly "hundreds of megabytes of pure library bloat". Most other libs Konqueror uses are from X11, btw.It is true, that KDE apps take their time to start, but the size of the libraries is not the crucial point, rather the fact that KDE is written in C++, and linking C++ programs requires a substantial amount of CPU work. The solution is to use prelinking which means the system doesn't have to dynamically link all those libraries every time a KDE app is started, but only once in a while in the background. If it was recently opened (i.e. in cache), KMail requires less than half a second to open up, display the main window, and allow interaction on my prelinked Gentoo Linux system.
You're so right! What do you need X for, when you can even play color videos on a text console?
Now the only thing that's still missing is an aalib version of pornview, and the average user could use the computer just as well in text mode as in graphical mode. Plus, since he doesn't need a mouse anymore, he can use the right hand for other activities.
You've never seen KDE 3.2 on Gentoo Linux...
to track the average amount of time users spend reading a single page.