Linked by Thom Holwerda on Sun 20th Apr 2008 15:43 UTC
General Development Geek.com is running an opinion piece on the extensive reliance of programmers today on languages like Java and .NET. The author lambastes the performance penalties that are associated with running code inside virtualised environments, like Java's and .NET's. "It increases the compute burden on the CPU because in order to do something that should only require 1 million instructions (note that on modern CPUs 1 million instructions executes in about one two-thousandths (1/2000) of a second) now takes 200 million instructions. Literally. And while 200 million instructions can execute in about 1/10th of a second, it is still that much slower." The author poses an interesting challenge at the end of his piece - a challenge most OSNews readers will have already taken on. Note: Please note that many OSNews items now have a "read more" where the article in question is discussed in more detail.
Thread beginning with comment 310701
To read all comments associated with this story, please click here.
Newer things works better...
by ciplogic on Mon 21st Apr 2008 12:29 UTC
ciplogic
Member since:
2006-12-22

I take as comparison the three main platforms that are today:
- Windows
Windows is right now not dependent of the BIOS (the NT kernel) so it will not wait a crappy DOS principle to write on your hard-drive. Secondly the caching is much more better, and is not like old smart-drive. Right now, Windows has no memory leaks (no major and are really hard to find), respectively the all base-code is optimized using compilers that use the branch-prediction of the CPU, the cache size. If one application has one infinite loop, it will not freeze your system, like start reading from a CD.
- Mac OS X: they took the OS and optimize it iteratively. Right now everyone knows that Leopard will not work on a non SSE2 CPU, because most heavily used operations are optimized
- Linux: the 2.6 kernel is the most scalable kernel, with improved threading support, most scheduling algorithms are O(1) (take a constant time for most operations)

Java, Gcc, .NET always improve performance over versions.

Why do you take the experience as sluggish? When a company makes software, take in account the resources that are available. If I had today a quad-core machine from AMD, that costs 250 dollars, 2 G of RAM, a 64 bit machine, optimized libraries. My question is: should I write the code taking in account that will run on a 486? Should I keep local variables for everything and make stupid caches, to gain 15% performance?

Here is not about price, is about what is the target. How much cost a computer? Let's say 500 euro, an entry level one. How much cost the software? Most of times, more than the computer itself, so the user will point features, not ultimate speed, in a bash-like terminal.

If you care about speed, do you disable themes, setup a lower resolution, stop all security services, and use WinAMP 1.x ?

I would not, I will prefer Banshee or ITunes, and wait a year till is optimized more.

I will put one question, how the industry will grow, if I will have 4 cores, and the OS takes 1% of it 99% of time in my desktop experience, and does not offer nothing more?