Linked by Eugenia Loli on Sat 5th Nov 2005 05:47 UTC, submitted by Andrew Bragdon
Talk, Rumors, X Versus Y In this article .NET 2.0 won 2 out of the 3 major tests – clearly besting Java 1.5 in both execution speed and real-world memory efficiency. Java did, however, manage to hold its own in the native types memory comparison by a pretty wide margin. This indicates that on the whole .NET is a more efficient platform, with perhaps at least one area for improvement – native type memory efficiency.
Order by: Score:
Stupid test
by Anonymous on Sat 5th Nov 2005 06:13 UTC
Anonymous
Member since:
---

I'm a fan of .NET, and I have to say that this test was moronically executed. Not only does it conclude completely false things, such as claiming that .NET treats arrays of native types as arrays of objects, but it's also very lacking in number and quality of tests.

The bigger "memory usage" of .NET was most likely because of a different garbage collector strategy. Seeing a big allocation it reserved a bunch of extra virtual memory space anticipating more. This memory will not be actually taken until used.

Reply Score: 5

RE: Stupid test
by segedunum on Sat 5th Nov 2005 13:44 UTC in reply to "Stupid test"
segedunum Member since:
2005-07-06

I'm a fan of .NET, and I have to say that this test was moronically executed. Not only does it conclude completely false things, such as claiming that .NET treats arrays of native types as arrays of objects, but it's also very lacking in number and quality of tests.

I agree totally. This was no meaningful comparison of Java and .Net at all. Move along.

Reply Score: 1

Hmmmm ...
by Anonymous on Sat 5th Nov 2005 06:13 UTC
Anonymous
Member since:
---

Thus, as we have seen, .NET 2.0 won 2 out of the 3 major tests – clearly besting Java 1.5 in both execution speed and real-world memory efficiency.

Since it looks like these benchmarks ended up .NET's favor, how we can expect at least 80 comments explaining exactly how and why thest tests were biased in favor of .NET.

Reply Score: 1

RE: Hmmmm ...
by Soulbender on Sat 5th Nov 2005 07:13 UTC in reply to "Hmmmm ..."
Soulbender Member since:
2005-08-18

"Since it looks like these benchmarks ended up .NET's favor, how we can expect at least 80 comments explaining exactly how and why thest tests were biased in favor of .NET."

All benchmarks are biased one way or the other. Just like statistics, benchmarks is a great vehicle for "proving" your point.

Reply Score: 5

Anonymous Member since:
---

Despite all the trolls that write code for Java, Sun doesn't have a clue on how to make usuable software.

Despite all the trolls that write code for Windows-Only .NET, Microsoft doesn't have a clue on how to create multiplatform software.

Reply Score: 2

Anonymous Member since:
---

Despite all the trolls that write code for Windows-Only .NET, Microsoft doesn't have a clue on how to create multiplatform software.
I'm not sure. The .NET is basically not tied too strictly to windows, let see the mono project. There is a way to create platform-independent .NET compatible sytem. It is only the Microsoft's decision. IMHO in the future the main plaform of microsoft will the .NET and not the Windows.

Reply Score: 1

Anonymous Member since:
---

It was true for win3.x and 9.x. But the NT-line is a relative good thing, the NT microkernel is really good (better then linux kernel), the win32 is not the best idea (but better then the 10000 little inconsistent library and application under linux) and IMHO the .NET will replace it in the near future.

Reply Score: 0

Anonymous Member since:
---

NT is not a microkernel. This is straight from the kernel team. It only looked like one at the start, but it's not anymore.

Reply Score: 0

Anonymous Member since:
---

Firstly, Linux is not a microkernel.
Secondly, your priorities for what you want in a kernel will most likely be different than everyone elses. Both Linux and NT kernels have good points, and both have bad points.
Thirdly, the NT kernel is totally uncustomizable (totally closed proprietory). Whereas Linux is totally free.

Your comparation is nearly as baseless as this article. It also seems like you dont know what you are talking about. Oh, and good luck with your driver programming in C#...

Reply Score: 0

Soulbender Member since:
2005-08-18

"But IMHO the NT microkernel is better then the monolithic linux kernel."

The NT kernel is not a microkernel and the Linux kernel is not monolithic. They're both hybrid kernels with varying degrees of modularity.

Reply Score: 1

Anonymous Member since:
---

I used linux as desktop from 1995. I don't see too many good points in the linux kernel. There are many good thing in the linux, but it is not the kernel.

LOL! And precisely what technical insights did you get into the kernel from being a desktop user?

Reply Score: 0

Anonymous Member since:
---

You obviously are an idiot.

Linux is a Kernel - NOTHING MORE.

GNU/Linux is the total system.

Reply Score: 0

Anonymous Member since:
---

Yeah yeah, when I think about windows GUI I recall Xview/Motif/Openstep/Gnome/KDE all these are MS achievements, the other OSes are only command line.

Reply Score: 0

Anonymous Member since:
---

First of all, I would say the windows GUI sucks badly too. It is just that people are so used to it that they don't notice.

Second, most java programs runs ever written runs on the serverside without much of a GUI. In some way Java act as a modern replacement for COBOL, and just like COBOL it will take a very long time before it becomes extinkt regardless how many better techniques that becomes available.

Third, .net 2.0 is newer than Java 5 (jdk1.5), and being so similar it is only natural that .net is somewhat better, just like java 1.6 will be better than java 1.5 and .net 2.0, just like java 5 was better than .net 1.0 However, most organizations can't afford to change their software platform as often as the version numbers of the development platforms change.

Reply Score: 1

Anonymous Member since:
---

Despite all the trolls that write code for Windows-Only .NET, Microsoft doesn't have a clue on how to create multiplatform software.

With previous version(s) of Windows NT being released for multiple platforms and the Rotor project bringing a large part of the .net base framework to *nix I'd say MS is more than capable of supporting multiple platforms.

The fact that they do not support them more at this point is purely strategic for them.

Reply Score: 0

v we've gone dynamic
by Anonymous on Sat 5th Nov 2005 06:27 UTC
RE: we've gone dynamic
by Anonymous on Sat 5th Nov 2005 07:26 UTC in reply to "we've gone dynamic "
Anonymous Member since:
---

The dynamic languages always will suck. Without static type system the applications always will be slow and unstable. You can write a little bit less code, but with the dynamic typing the IDE's code completition always will be less sophisticated. In long term (and with bigger projects) you will create your application with using more working hours then the tradidional languages and systems. And with .NET or Java you can use a very big class library. This class libraries are very well designed - oppisitely the most of FOSS class libs. And this class libraries are coherent, not 1000 little redundant, incompatible, buggy little library. And this libraries are precompiled, especially on .NET.

Reply Score: 0

design != buggyness
by renox on Sat 5th Nov 2005 10:37 UTC in reply to "RE: we've gone dynamic "
renox Member since:
2005-07-06

> This class libraries are very well designed
I remember using Swing a long time ago, its design is quite clean but it was also full of bugs and very slow at this time, which Sun took years to correct..

As for the dynamic vs static type debate, I remember seing that C# v3 will have locally inferenced types which should increase the readability.
I think that local type inference is an interesting middle ground: you get nearly the same type safety as static types with a much improved readability.

Reply Score: 1

RE[2]: we've gone dynamic
by Anonymous on Sat 5th Nov 2005 14:25 UTC in reply to "RE: we've gone dynamic "
Anonymous Member since:
---

Hmm, Objective-C is nice on MacOS X, IMHO it does not "suck".

Reply Score: 0

RE[2]: we've gone dynamic
by Anonymous on Sat 5th Nov 2005 15:39 UTC in reply to "RE: we've gone dynamic "
Anonymous Member since:
---

This is so moronic I hardly know where to start. Do you know the difference between dynamic typing and strong typing? I can't imagine why you think dynamic typing makes for slow and unstable apps. And what does code completion have to do with anything? Finally, I make a living writing .Net code and if you think the class libraries are especially well designed then it just reveals your naivety. They're acceptable, but the collection classes in particular are unwieldy and limited. It's no surprise that the roadmap for C# contains a lot of features inspired by Ruby, one of the most dynamic languages in common use.

Reply Score: 0

RE[3]: we've gone dynamic
by Anonymous on Sun 6th Nov 2005 07:06 UTC in reply to "RE[2]: we've gone dynamic "
Anonymous Member since:
---

I can't imagine why you think dynamic typing makes for slow and unstable apps.

Speed: if you use dynamic typing, your app will check the type of your variable before every instruction.

if you execute the $a=$a+1 statament your app must check the type of $a before you can add to 1 to the $a.

Stability (PHP):
$a=2;
$b="2 apple";
$c=$a+$b;
print $c; /* 4 */

Python is better (send type error if you try a+b, but the a*b is valid, the result is 2 apple2 apple).

You can create unit tests, but IMHO better if this type of bugs filtered out in compile time.

Reply Score: 0

RE[4]: we've gone dynamic
by Anonymous on Sun 6th Nov 2005 18:28 UTC in reply to "RE[3]: we've gone dynamic "
Anonymous Member since:
---

Python is better (send type error if you try a+b, but the a*b is valid, the result is 2 apple2 apple).

You should probably read up on dynamic/static vs strong/weak typing. Python, for instance, is dynamic and strongly-typed. You might not declare types in the code, but an int is an int is an int. It is an int when it is first assigned, and it is an int throughout the program. Since the type of a variable is constant, it does not need to be checked "before every instruction". Your a*b example is doing exactly what you are telling it to do, and has nothing to do with the type system. a+b is a type error, and flagged as such. So, given that python has the same runtime type safety as java and .Net, and does not have the performance penalties you ascribe to it, I ask again - how is it that dynamic languages necessarily result in slow and unstable apps? Before answering, you might want to consider that the type safety in C# and java can be trashed by upcasting to an object in one statement, then attempting to downcast to an incompatible object in the next statement. This will not be spotted at compile time, and so by your definition must make C# and java apps unstable. C++ and (especially) C are even easier to abuse.

Reply Score: 0

RE: we've gone dynamic
by Celerate on Sat 5th Nov 2005 07:31 UTC in reply to "we've gone dynamic "
Celerate Member since:
2005-06-29

Java != Javascript && Javascript != Java

Javascript was created by Netscape, Java on the other hand was created by Sun microsystems.

"JavaScript was first introduced and deployed in the Netscape browser version 2.0B3 in December of 1995. The choice of name proved to be a source of much confusion. There is no real relation between Java and JavaScript; their similarities are mostly in syntax (that is, both derived from C). Their semantics are quite different: notably, their object models are unrelated and largely incompatible."
http://en.wikipedia.org/wiki/Javascript#Java.2C_JavaScript.2C_and_J...

Reply Score: 3

RE[2]: we've gone dynamic
by japail on Sat 5th Nov 2005 08:36 UTC in reply to "RE: we've gone dynamic "
japail Member since:
2005-06-30

Where did the original poster confuse Java and JavaScript? How would that even make sense, when he was clearly referring to it as a dynamic language?

Edited 2005-11-05 08:36

Reply Score: 1

v RE[2]: we've gone dynamic
by voidlogic on Sun 6th Nov 2005 00:59 UTC in reply to "RE: we've gone dynamic "
RE[3]: we've gone dynamic
by Celerate on Sun 6th Nov 2005 21:05 UTC in reply to "RE[2]: we've gone dynamic "
Celerate Member since:
2005-06-29

In an object oriented language if an object inherits from another than the one that inherits can be used in place of it's parent class; however, depending on the language the opposite isn't always true.

ex:
obj1 base class
obj2 extends obj1 // inheritence
void foo(obj1) can take obj2 instead, but
void bar(obj2) cannot always take obj1.

Therefore one can be the other but the opposite cannot always be true.

Reply Score: 1

RE[4]: we've gone dynamic
by Anonymous on Sun 6th Nov 2005 23:38 UTC in reply to "RE[3]: we've gone dynamic "
Anonymous Member since:
---

Oh, I agree with you, I am talking about in the since of boolean algebra though. With the operands being T/F values.

Reply Score: 0

2.0 > 1.5?
by smileaf on Sat 5th Nov 2005 07:16 UTC
smileaf
Member since:
2005-08-16

I suppose you'll say that .NET is also better because of it's higher version?

Last I checked .NET isn't designed for a compile once, run anywhere. Please correct me if I'm wrong.
This I'd consider Java to be more suitable/desirable for me.

Because of that factor it might also be a reason why it's a little slower. It has to figure out how that OS does things. This however can be solved by coding it into the JVM. Of course I have no backing to this just me thinking out loud at 1am.

Reply Score: 1

RE: 2.0 > 1.5?
by Anonymous on Sat 5th Nov 2005 14:35 UTC in reply to "2.0 > 1.5?"
Anonymous Member since:
---

Last I checked .NET isn't designed for a compile once, run anywhere. Please correct me if I'm wrong.
This I'd consider Java to be more suitable/desirable for me.


Are you kidding? .NET was designed by MS from the beginning to be cross-platform from the ground up! MS has released versions of .NET (Rotor) for Mac OS X and at least one other OS. Then you have Mono, which takes .NET's design onto virtually every other platform. I wrote cross-platform apps in .NET every day. It rocks!

Reply Score: 0

RE[2]: 2.0 > 1.5?
by aquila_deus on Sat 5th Nov 2005 15:02 UTC in reply to "RE: 2.0 > 1.5?"
aquila_deus Member since:
2005-10-02

.NET was designed by MS from the beginning to be cross-platform from the ground up!

Last time I heard Mono is not going to support System.EnterpriseServices...

Reply Score: 1

RE[3]: 2.0 > 1.5?
by n4cer on Sun 6th Nov 2005 07:15 UTC in reply to "RE[2]: 2.0 > 1.5?"
n4cer Member since:
2005-07-06

Last time I heard Mono is not going to support System.EnterpriseServices...

This has nothing to do with the platform itself being designed to be OS/system neutral. There are many C++ libraries not available on other platforms, but it doesn't mean you can't create code that runs on all of them.

The fact is the CLI was developed to be platform neutral. .NET is one implementation of this standard. The MSR runtimes, Mono, and .GNU are other implementations of the same standards. .NET and Mono also include and/or have seperately distributed platform-specific libraries not unlike most other language distributions. These libraries in no way impede one's ability to develop platform-neutral applications as the various CLI implementations have proven.

Reply Score: 1

RE[4]: 2.0 > 1.5?
by Anonymous on Sun 6th Nov 2005 08:19 UTC in reply to "RE[3]: 2.0 > 1.5?"
Anonymous Member since:
---

Only problem is Mono uses microsoft API's that are not part of any standard. i.e. ASP.NET and ADO.NET are not part of the ECMA standard.

Heck, even on the Mono website, they are already figuring out ways to 'get around' the patent problems.

Java seems safer from a legal perspective.

Reply Score: 0

RE[5]: 2.0 > 1.5?
by n4cer on Sun 6th Nov 2005 08:40 UTC in reply to "RE[4]: 2.0 > 1.5?"
n4cer Member since:
2005-07-06

Only problem is Mono uses microsoft API's that are not part of any standard. i.e. ASP.NET and ADO.NET are not part of the ECMA standard.

And again, the availability of class libraries licensed only for specific OSes has nothing to do with the platform neutral design of the runtime architecture.

As you said, they aren't part of the standard. This in no way impedes the development of cross-platform code, nor means the standard wasn't designed with neutrality in mind. Practically all language platforms have libraries that won't work across OSes, whether for technical reasons or only due to licensing. Whether a library is limited to a particular OS/architecture is up to the developer of that library.

Reply Score: 1

RE[5]: 2.0 > 1.5?
by Anonymous on Sun 6th Nov 2005 12:25 UTC in reply to "RE[4]: 2.0 > 1.5?"
Anonymous Member since:
---

Java seems safer from a legal perspective.
It is true, but just because the MS and the SUN agreed. But it is not concern to any other implementations (classpath+gcj, etc) and if SUN is out of business the legal perspective of java can be very interesting. But probably the IBM also can protect their java implementation.

Reply Score: 0

Uncle Bill
by Anonymous on Sat 5th Nov 2005 07:28 UTC
Anonymous
Member since:
---

This combined with SuSE getting the axe really makes it look like Uncle Bill is going to win again.

Microsoft vs. IBM... I kind of wish that IBM would just focus on hardware. They kick ass in that area. Software? Not so much.

Reply Score: 0

RE: Uncle Bill
by Celerate on Sat 5th Nov 2005 07:34 UTC in reply to "Uncle Bill"
Celerate Member since:
2005-06-29

SUSE, although a good distribution, is not the only Linux distribution out there.

Reply Score: 1

What an idiot
by tummy on Sat 5th Nov 2005 07:38 UTC
tummy
Member since:
2005-09-14


Here we see .NET reversing the memory outlook and besting Java by a solid margin. This indicates that since .NET treats native types – such as double – as objects, that this incurs additional object overhead. Java, on the other hand, does not treat native types as objects and therefore can save on this overhead. However, when it comes to real-world object allocation, it appears that .NET is more efficient


What bull. .NET treats "native types" (more accurately put as value types) the same as Java. They are an int takes 4 bytes a double 8 bytes etc.

There's no need for value types to have more overhead in .NET than Java an, indeeed, they don't.

When a value type needs to act as an object (like when it's used via an object or interface referfence), then and only then does it get boxed and take up more space. Normal regular calls directly on on the value type (such as Int32.ToString() etc don't require boxing).

How can you trust an article where the author clearly doesn't know what he's talking about?

Reply Score: 3

RE: What an idiot
by nimble on Sat 5th Nov 2005 07:50 UTC in reply to "What an idiot"
nimble Member since:
2005-07-06

When a value type needs to act as an object (like when it's used via an object or interface referfence), then and only then does it get boxed and take up more space.

Exactly. And of course Java does exactly the same, only you've got to do the boxing and unboxing manually, which is a pain in the ass.

And C# is actually more efficient when value types are combined with generics. In Java e.g. you have to manually box integers to put them into a List<Integer>. In C# you can put them into a List<int> directly, and the runtime system automatically creates a version of the List<T> code that is specialised for int's and thus does not require any boxing at all.

Reply Score: 1

RE[2]: What an idiot
by Anonymous on Sat 5th Nov 2005 08:37 UTC in reply to "RE: What an idiot"
Anonymous Member since:
---

>Exactly. And of course Java does exactly the same, only you've got to do the boxing and unboxing manually, which is a pain in the ass.

Not with J2SE 5.0, which does autoboxing.

Reply Score: 0

v RE[3]: What an idiot
by Anonymous on Sat 5th Nov 2005 16:10 UTC in reply to "RE[2]: What an idiot"
Suspicious Java memory usage
by Marcellus on Sat 5th Nov 2005 08:05 UTC in reply to "What an idiot"
Marcellus Member since:
2005-08-26

There's another thing to note in there.

If the Java double type is 64-bit, that means each double takes 8 bytes of memory. With 5million doubles, that adds up to 40000000 bytes of memory, but the Java test shows 19.9MB which is ~half that.
What happens here? Does java compress the floats when they are not used, or is it that the JVM detects that they are not used, and so doesn't keep all of it in memory?
The guy who made this test is a moron who don't understand what he's talking about, plain and simple.

Reply Score: 3

RE: Suspicious Java memory usage
by ma_d on Sun 6th Nov 2005 03:04 UTC in reply to "Suspicious Java memory usage"
ma_d Member since:
2005-06-29

I noticed that too... I'm thinking Java recognizes that he hasn't done anything with his memory, he needs to be smarter than his vm and do something like:
char lst = new char[50000000];
for (int c; c < 50000000; ++c)
lst[c] = char(c%32 + 65);

That way, maybe he can trick the VM into thinking he's using that RAM.

Reply Score: 1

Should not even have been posted
by Matzon on Sat 5th Nov 2005 07:51 UTC
Matzon
Member since:
2005-07-06

This benchmark is pretty flawed (missing details, missing options, missing code, etc.), and by the looks of it done by someone who doesn't really have a good idea of whats going on.
I know these kinds of articles usually start a flamewar, and OSNews wants impressions - but there clearly is a lack of quality control in this case.

Reply Score: 2

neutral territory
by chekr on Sat 5th Nov 2005 08:02 UTC
chekr
Member since:
2005-11-05

I know there are going to be a lot of people picking at this, in all fairness I do not care too much for either dotnet or java. I think they are great technologies they just don't excite me.

However the neutrality of this test can be called into question as we are testing the microsofts dotnet implementation on their own platform meaning they have access to private API's and the like that Sun does not have access to. Maybe this is not the case but we can't really be sure of this now can we?

How about they run these tests again on a neutral platform such as FreeBSD, it would be rather interesting to see what sort of results we got then

Reply Score: 1

RE: neutral territory
by jjezabek on Sat 5th Nov 2005 10:58 UTC in reply to "neutral territory"
jjezabek Member since:
2005-08-07


However the neutrality of this test can be called into question as we are testing the microsofts dotnet implementation on their own platform meaning they have access to private API's and the like that Sun does not have access to. Maybe this is not the case but we can't really be sure of this now can we?

Which private API helps .NET during selection sort? Which private API helps .NET to take up less memory for an array of objects?
Do you really believe there's a private API that makes the CPU run faster?

Reply Score: 2

RE[2]: neutral territory
by chekr on Sat 5th Nov 2005 11:17 UTC in reply to "RE: neutral territory"
chekr Member since:
2005-11-05

"Which private API helps .NET during selection sort? Which private API helps .NET to take up less memory for an array of objects?"

Couldn't tell you really mate. I think the whole "private" part of it kind of gives me a reason not to know now doesn't it...

"Do you really believe there's a private API that makes the CPU run faster?"

I doubt it, if you find one be sure to let me know...I would it really appreciate it.

Reply Score: 1

RE[2]: neutral territory
by Beta on Sat 5th Nov 2005 11:49 UTC in reply to "RE: neutral territory"
Beta Member since:
2005-07-06

Whether or not they have a private API, Microsoft does have some advantage working off their native O/S.
{and yes, MS has in the past used undocumented apis to increase performance compared to rival products on their platform}

If .Net performed worse than Java on Windows, wouldn't you be shocked?

How about we compare Mono performance vs. Kaffe?

Reply Score: 1

RE[3]: neutral territory
by Anonymous on Sat 5th Nov 2005 17:08 UTC in reply to "RE[2]: neutral territory"
Anonymous Member since:
---

"Whether or not they have a private API, Microsoft does have some advantage working off their native O/S.
{and yes, MS has in the past used undocumented apis to increase performance compared to rival products on their platform} "

I love it everytime someone tries to use this argument. Sun themselves did a test with this in StarOffice, and what did they find? Performance gain with undocumented API = zero.
Certain APIs are undocumented because they WILL change in the future. Once MS publically documents an API, it's very unlikely to change.

"How about we compare Mono performance vs. Kaffe?"
This has already been done, Mono won. IKVM on an old build of Mono (VM on VM, whee!) ran Java just as fast as Kaffe.

Reply Score: 0

RE: neutral territory
by Anonymous on Sat 5th Nov 2005 14:38 UTC in reply to "neutral territory"
Anonymous Member since:
---

I'm guessing that's because Sun still doesn't make it all that easy for FreeBSD to even run Java 1.5, which isn't a great selling point for the people using it.

Reply Score: 0

Umm....
by Anonymous on Sat 5th Nov 2005 08:09 UTC
Anonymous
Member since:
---

That was quite possibly the lamest article I've ever read. Honestly, is this fluff worthy of being posted?

Reply Score: 1

idiot review
by Anonymous on Sat 5th Nov 2005 08:37 UTC
Anonymous
Member since:
---

When I was 12 I benchmarked my commodore 64 by running a for loop. This 'test' seems to have the same level of sophistication. It's naive, flawed and tells you the tester probably just finished the C# for dummies book and now thinks he's ready to take on the world.

Reply Score: 1

Waste of time
by DerSchriner on Sat 5th Nov 2005 08:37 UTC
DerSchriner
Member since:
2005-11-05

to read this article. As if either Java or .NET existed for performance reasons. .NET was not built to compete with Java in that respect, a platform comparison would be more adequate.

On the other hand I don´t think anyone could compare these two breeds to full extent.

It´s mostly a matter of personal preferences? If I were programming for Windows only, and if I hadn´t programmed in Java for so long, maybe I would consider .NET for my projects. IDEs are a real problem for .NET, you can get several powerful Java IDEs for free, and there are no counterparts in the .NET world. VS is a laugh for code-based work

Reply Score: 2

Whats next?
by Anonymous on Sat 5th Nov 2005 08:43 UTC
Anonymous
Member since:
---

Soon we will be comparing a knife to a fork.

Reply Score: 1

stupid
by Anonymous on Sat 5th Nov 2005 08:49 UTC
Anonymous
Member since:
---

As much as I like .NET, this 'benchmark' was absolutely stupid. We don't even know HOW he arrived at those numbers. For all we know, the doubles didn't do anything and didn't get allocated. Or got GCed early, in which then we'd also need to see the running time. Etc.

We don't know what sorting algorithm was used. How was it implemented? Without anything of value to actually study and draw conclusions from, this 'benchmark' has absolutely no value and smack in the face of regular .NET benchmarks that do provide full disclosure.

But the whole doubles as objects thing should have tipped off everyone that the clue is clueless.


"Last I checked .NET isn't designed for a compile once, run anywhere. Please correct me if I'm wrong.
This I'd consider Java to be more suitable/desirable for me. "
Tell that to the people who only have to maintain have to maintain 3 different codebases for 100% 'Pure Java' applications on Win, Linux and OSX. Or different builds for different appservers.

"Because of that factor it might also be a reason why it's a little slower. It has to figure out how that OS does things." No, it doesn't. It did all the figuring out when you picked which version of the JRE to install.

The only thing this 'benchmark' proved was the Hotspot VM does not do any optimizations for long running processes, which is expected to anyone with any idea about runtime optimizations, contrary to the Hotspot's proponents.

In short, this benchmark = stupid.

Reply Score: 1

RE: stupid
by japail on Sat 5th Nov 2005 09:23 UTC in reply to "stupid"
japail Member since:
2005-06-30

Actually you do know what algorithm was used: selection sort. Though knowing that is not strictly necessary so long as the same sorting algorithm is used in both cases and it is implemented in terms of the same functionality.


Your last meaningful paragraph doesn't make any sense to me, and I've only glossed over the middle of the comment. The benchmark is stupid, and the absence of source code makes it even more useless than it clearly is from the exposition. The source code though sounds like it would take about six minutes to write from scratch if anyone really cares.

Reply Score: 1

RE[2]: stupid
by Anonymous on Sat 5th Nov 2005 17:32 UTC in reply to "RE: stupid"
Anonymous Member since:
---

Knowing it was selection sort is about as useful as knowing another benchamrk implemented a shopping cart. For all we know, the implementation could be assbackwards.

The real value of benchmarks is being able to study the results and the implementation that lead to the results so you can appropriately plan the best way to do something. In-depth and detailed benchmarks are hard to come across because it takes a lot of time, effort and resources to conduct one, which is why they're usually funded. Being a funded benchmark doesn't lessen its validity as long as you get to inspect the details from full disclosure and understand what's going on.


I vote for knife vs fork shootout. Fork is clearly superior to knife.

Reply Score: 0

RE[3]: stupid
by japail on Sat 5th Nov 2005 23:44 UTC in reply to "RE[2]: stupid"
japail Member since:
2005-06-30

Is that your really weak manner of saying "I don't know what I'm talking about, stop correcting me? I didn't read the first paragraph."

As long as it's implemented in terms of precisely the same functionality on both platforms (and it clearly is since they just 'ported' the same code from one to the other) they are testing essentially the same aspects of the virtual machines. What would be much more interesting is the exact parameters used for conducting the benchmarking.

Providing the source code in this case, or even saying what algorithm is used is unimportant. It's unimportant because a single test case is completely worthless for benchmarking. It affords absolutely no advantage here because the nature of the algorithm places most of the overhead in the effectiveness of the JIT compiler, and there aren't enough tests being made to conclude anything about the VMs.

Reply Score: 1

RE[4]: stupid
by Anonymous on Sun 6th Nov 2005 07:07 UTC in reply to "RE[3]: stupid"
Anonymous Member since:
---

Oh, starting with the personal attacks already? Is this your really lame hypocrytical attempt to act holier than thou?

"As long as it's implemented in terms of precisely the same functionality on both platforms (and it clearly is since they just 'ported' the same code from one to the other) they are testing essentially the same aspects of the virtual machines. What would be much more interesting is the exact parameters used for conducting the benchmarking."
No. Firstly, .NET != Java. Secondly, no proof has been offered that it is just a simple port. .NET and Java are implemented differently, their VM behaviours will be different, and the class libraries will perform differently. .NET and Java are not equal. The algorithm used could have been specifically chosen to exploit weaknesses in Java. We don't even know if the tests did anything with the doubles. The only thing we got is a digested number spitted out claiming ".NET is faster than Java".

"Providing the source code in this case, or even saying what algorithm is used is unimportant. It's unimportant because a single test case is completely worthless for benchmarking. It affords absolutely no advantage here because the nature of the algorithm places most of the overhead in the effectiveness of the JIT compiler, and there aren't enough tests being made to conclude anything about the VMs."
So now you're saying the benchmark is worthless because it one uses a single test case, but it wouldn't be if the VM paramaters were given out? So now the switches are be be all and end all? Well, Hello contradictory. I'm saying it's worthless because it's too simplistic and does not disclose the full details. You can make your benchmark as complex as you want, but it will still have little real value because your implementation could be retarded, or overly biased. You can learn something about performance even from biased benchmarks by studying the details.

If you can't understand that, then there's no point continuing this discussion with you. Your arguments strike as exactly the same kind of arguments Sun uses to avoid disclosing the details of their benchmarks, and the poor arguments made for 'apples to apples' comparisons which deliberately perform unnecessary 'tweaks' to the competing system causing poorer performance.

Reply Score: 0

RE: stupid
by Anonymous on Sat 5th Nov 2005 10:10 UTC in reply to "stupid"
Anonymous Member since:
---

No question benchmark is plain dumb.

As far as this statement:

"3 different codebases for 100% 'Pure Java' applications on Win, Linux and OSX" ... could you elaborate. People always throw around various complaints, without ever quantifying or at least qualifying their points.

In spirit of free discovery,

Someone who thinks benchmark is stupid.

P.S: Even though Java used to run billions of e-commerce transactions per year, with vulnerabilities counting in single digits over a period of 10 years, nothing is ever 100% perfect and no one ever writes the same code. Java provides a _specificiation_, which is free to be implemented so long as it complies with "the test suite". No test suite is ever perfect.

Reply Score: 0

v Good Article
by Mystilleef on Sat 5th Nov 2005 09:09 UTC
Mono
by Anonymous on Sat 5th Nov 2005 09:12 UTC
Anonymous
Member since:
---

Now a competive benchmark between mono and java 5, that would have been informative.

95% of all the Java i've written is not intended for the desktop, but middleware running on BSD of linux. No .NET there.

Reply Score: 0

RE: Mono
by japail on Sat 5th Nov 2005 09:26 UTC in reply to "Mono"
japail Member since:
2005-06-30

And most people using .NET are using it on Windows, so how does that make anything better?

Reply Score: 1

v This is just dumb...
by Anonymous on Sat 5th Nov 2005 09:50 UTC
RE: This is just dumb...
by Anonymous on Sat 5th Nov 2005 10:05 UTC in reply to "This is just dumb..."
Anonymous Member since:
---

You never can compare a real word applications, because IMHO if you write a real word application on .NET and Java the code will be very different. The best thing what you can do the synthetic tests...

Yes, java at this moment very popular. But at this moment is nobody behind the Java, only the SUN. And the SUN is not too stable and ritch company. Yes, IBM, Oracle, etc supports Java, but this companies also supports .NET.

Reply Score: 0

bad diagnostics
by l3v1 on Sat 5th Nov 2005 09:51 UTC
l3v1
Member since:
2005-07-06

I mean come on, if .net is the absolute ruler except for native type memory efficiency is narrow minded to say the least. The evalutation and comparison was - to say the least - lacking and lame, not good for anything, let alone taking it as a base of comparison of .net/java. I'm not taking part of either, don't get me wrong, I'm just saying this article proves nothing beyond the lack of any working quality control in article review.

Reply Score: 3

RE: bad diagnostics
by ma_d on Sun 6th Nov 2005 03:09 UTC in reply to "bad diagnostics"
ma_d Member since:
2005-06-29

And, as if all those books/articles on managed code taught us nothing: Who cares if you sacrifice half of your clock cycles if you can save 10% of your development costs.
Not to mention, managed languages have a tendency (especially Java) to try and push you into the more efficient ways of using the VM to get the job done.. Where as, in say c, you can do whatever you want and there's no real push (although you likely won't be declaring structs with functors in them).

I really don't see the point in doing a benchmark of them. Maybe doing a benchmark of their graphics libraries, that might help out some aspiring 2d game programmers. Or, benchmark their 3d graphics libraries, maybe you'll help an aspiring cross platform 3d game programmer.

Reply Score: 1

v RE: This is just dumb...
by Anonymous on Sat 5th Nov 2005 10:17 UTC
v RE: @Anonymous (IP: 85.66.51.---)
by Anonymous on Sat 5th Nov 2005 10:47 UTC
Anonymous Member since:
---

Let see: operator overloading, properties, databinding...

And this features are wasn't a new things when java was born (let see Delphi, C++, etc). You can implement this features in java, but if you want to use them you must rewrite all existing class libraries.

Reply Score: 0

Anonymous Member since:
---

Ps: Java is a really good thing. But IMHO .NET is simply better. Not because the coders of MS are genious, only because the .NET is younger and the MS developers was draw the conclusions from java.

Reply Score: 0

Another useless test/review/article..
by noocyte on Sat 5th Nov 2005 11:00 UTC
noocyte
Member since:
2005-07-06

So, another completly useless test.. Big deal!
In order to compare the two frameworks you'd need a very detailed case scenario and then compare building time, code performance etc. etc.
But even then you run into heaps of issues, like flexibility and extensability.

But a performance test could be useful, but this one was just utter BS. Like many of you already commented on; how can doubles require different amounts of memory?!

Reply Score: 1

Oh for Pete's sake....
by Anonymous on Sat 5th Nov 2005 11:18 UTC
Anonymous
Member since:
---

A Windows funded site doing a .Net propoganda piece and handily omitting to publish the sources is about as credible as Bush not invding Iraq for oil.

Just look any 95% of Enterprise deployments (Java)
When last did ANYONE "switch" to .Nyet? It's dying, just like Microsoft and their Office revenue stream.

It's theoretically not possible to do better than a dynamic JIT compilation for certain operations.

Reply Score: 0

.NET is much better than JAVA
by Anonymous on Sat 5th Nov 2005 11:21 UTC
Anonymous
Member since:
---

When I saw .NET for the first time, I predicted that this platform will beat JAVA and this is becoming true. .NET have many cool sort of features that JAVA don't have. I was once a fan of JAVA but now I love .NET.

Reply Score: 0

Postive m$ fud
by proforma on Sat 5th Nov 2005 11:21 UTC
proforma
Member since:
2005-08-27

"Positive articles about Microsoft are just not true and are FUD. Nothing positive can come out of MS"

Signed your average Linux user aka Linux Zealot(notice I didn't say open source user as Open source is way beyond linux and it has hijacked the term).

Open source the idea is great, the linux political movement--the world could do without.

Reply Score: 2

Java
by Mr. Tan on Sat 5th Nov 2005 11:38 UTC
Mr. Tan
Member since:
2005-07-08

With regard's to java's multiplatform capabilities, as long as your not using jni then chances are that your app will work with multiple platforms, I develop in-house mathematical applications in swing and I compile the system in my xp laptop and distribute it to different test machines, solaris, linux, windows. always the same result on all the machines. So as far as i'm concerned java's multiplatform ability is there

Reply Score: 1

flawed
by Anonymous on Sat 5th Nov 2005 11:48 UTC
Anonymous
Member since:
---

it's guess guess why .net beats java in the selection sort test. Autoboxing in Java isn't done in an especially efficient way - primitive types are wrapped into the heavyweight Numeric classes dynamically. I'd be willing to be the person conducting this benchmark used a Collection to store the doubles being sorted. This would result in extremely excessive overhead which could be easily dismissed by using a primitive array. So, whilst one could say that this is a flaw in Java 5, it's one that is easy to avoid.

As someone who has to write code in both languages, my experiences are that Java is faster, has better GC performance and has a better designed class library. One need only look at the .net collection classes to realise this. (This is an anecdote, so treat it as such).

Reply Score: 1

v RE:.NET 2.0 vs. Java 1.5 Shootout
by TusharG on Sat 5th Nov 2005 12:03 UTC
eh..
by ahmetaa on Sat 5th Nov 2005 13:12 UTC
ahmetaa
Member since:
2005-07-06

one of the worst benchmarks i have ever seen. No code, tuned for the strength of one platform (primitive collections and storing Strings as ASCII if possible..) i laugh people who takes this test serious.

Reply Score: 1

That was it?
by Anonymous on Sat 5th Nov 2005 13:39 UTC
Anonymous
Member since:
---

I thought I'd missed a few more pages. Three, very poor, tests? I'm surprised the author didn't chuck in some code to print and time "Hello World" a few thousand times on the screen as well.

I don't know which is more embarrassing: the author thinking this was some kind of useful comparison test, or OSNews for posting such a sorry excuse for an article.

Reply Score: 0

Apples to Oranges
by Anonymous on Sat 5th Nov 2005 13:58 UTC
Anonymous
Member since:
---

A real test would be Mono vs. Java (or if MS ever ported something to non-Windows).

.NET can be optimized for a single operating system, while Java has to be able to have an average performance on many, many operating systems.

.NET is Windows native code that just so happens to be running in a VM for the purpose of garbage collection and security. Big difference from the purpose of Java.

Reply Score: 0

Java on UNIX
by Anonymous on Sat 5th Nov 2005 14:01 UTC
Anonymous
Member since:
---

Let's see the performance of Java on a UNIX/Linux box, eh?

Oh! You mean Java runs slower than .NET on Windows?! How suprising?

Of course, if I want to write code only for Windows, I'll use .NET or Win32. For cross-platform, I'll use Java!

Reply Score: 0

v .NET is winning Java? Biggest joke!
by Anonymous on Sat 5th Nov 2005 14:04 UTC
In my portability test...
by Anonymous on Sat 5th Nov 2005 14:56 UTC
Anonymous
Member since:
---

Java beat the snot out of .Net, 100 to 0.

Reply Score: 0

grow up
by ple_mono on Sat 5th Nov 2005 15:12 UTC
ple_mono
Member since:
2005-07-26

This is pointless. I shouldn't even be writing this post, but i couldn't let it go this time.
Compare all you want, but in the end the practical value of Java vs .NET, will differ in diffrent situations. And i'm pretty sure the "fittest" language will survive in the end. Or the "best" if you will.

"My dad is better than yours". "Gnome is better than KDE".
Please, go ahead and always look at something from only ONE perspective. Be narrow minded.

Reply Score: 1

Clear .NET advantage
by Anonymous on Sat 5th Nov 2005 15:36 UTC
Anonymous
Member since:
---

These tests are clearly biased towards .NET. Let's see how:

The machine where they did the testing has 2Gb of RAM, which puts the JVM in "server mode" automatically. In server mode, the JVM optimizes for long run execution, meaning that the startup penalty will be bigger in exchange for a potential increase in performance as the execution progresses. This works great for server applications, as they tend to have more predictable execution patterns and end up being faster than native code sometimes, due to run-time optimizations.

.NET, on the other hand, seems to be targeted (and used) mainly on the client side, where startup time matters. For this reason, and because of the JVM's server mode thing, .NET wins hands down in these tests.

For an unbiased benchmark the tests should have been longer (minutes or hours) to reduce the influence of startup overhead.

Reply Score: 0

RE: Clear .NET advantage
by Anonymous on Sat 5th Nov 2005 15:53 UTC in reply to "Clear .NET advantage"
Anonymous Member since:
---

Just to back my claims up, in Server-Class Machine Detection [ http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html ] one can read:

"For J2SE 5.0, the definition of a server-class machine is one with at least 2 CPUs and at least 2GB of physical memory." -- The test machine is a Pentium D (dual-core) with 2Gb of RAM.

"The aim is to improve performance even if no one configures the VM to reflect the application it's running. In general, the server VM starts up more slowly than the client VM, but over time runs more quickly." -- This alone debunks these benchmarks.

Reply Score: 1

RE[2]: Clear .NET advantage
by Anonymous on Sat 5th Nov 2005 16:51 UTC in reply to "RE: Clear .NET advantage"
Anonymous Member since:
---

It's been proven that the Hotspot does not actually do any additional optimizations for long running processes. It has different allocation and GC strategies, but JIT optimizations are zilch.

Furthermore, if you paid any attention to the 'benchmark', as stupid as it is, you'd see that the server VM must definitely start in less 375ms if the times took it into account, which certainly doesn't account for the 10000+ ms different in the second result, shooting your argument full of holes. Additionally, the graphs are proportionate, which suggests that the time taken was recorded via APIs, which in case you didn't notice, requires the VM to start first. Now, anyone can tell you that even on a 20 processor E20K, the server VM does not start in less than 375ms. Let's not even get started about the other dozen switches needed by Java to not make it look like a total laggard in properly conducted benchmarks. Switches that only help in those specific tasks and configurations.


This benchmark may be stupid and pointless, but the Java camp trying to defend Java with broken arguments is even worse.

Reply Score: 0

RE[3]: Clear .NET advantage
by Anonymous on Sat 5th Nov 2005 18:13 UTC in reply to "RE[2]: Clear .NET advantage"
Anonymous Member since:
---

"It's been proven that the Hotspot does not actually do any additional optimizations for long running processes. It has different allocation and GC strategies, but JIT optimizations are zilch."

Is it? Then point us all to some "proof", otherwise we will assume you are just taking that out of your ass.

The startup overhead isn't just about the startup time of the VM itself, it is about how aggressively the VM JIT compiles the code after it starts running.

If you are trying to benefit long running applications you don't start doing JIT compiling to the code right away, you collect statistics first to see what code runs frequently enough to be compiled without the JIT overhead becoming larger than the interpretation overhead of the bytecodes themeselves.

Reply Score: 0

RE: Clear .NET advantage
by n4cer on Sun 6th Nov 2005 07:42 UTC in reply to "Clear .NET advantage"
n4cer Member since:
2005-07-06

.NET, on the other hand, seems to be targeted (and used) mainly on the client side, where startup time matters. For this reason, and because of the JVM's server mode thing, .NET wins hands down in these tests.

.NET also has a server mode. One way of setting it is to make an app.config file (text file named appname.exe.config in the same directory as the app executable) with the following declaration:

<Configuration>
<runtime>
<gcServer enabled=“true“ />
</runtime>
</Configuration>

Reply Score: 1

Flawed Benchmark
by jayson.knight on Sat 5th Nov 2005 16:32 UTC
jayson.knight
Member since:
2005-07-06

The truth is, no one really cares about benchmarks like this (i.e. my language can do a gazillion loops half a second faster than your language). Does the author really think that a business stakeholder in a project cares about stuff like that? What matters is time to market, return on investment, etc...that kind of stuff is nearly impossible to "benchmark." A real world test would be to build a large, distributed application and see:

A) Who could build it the quickest
B) Number of bugs per (n) lines of code
C) Maximum sustained number of concurrent users
D) Maximum sustained transactions/second
E) Cost of hardware to support the system at maximum throughput

The problem with this is that MS won't allow benchmarks like this with their languages/platforms unless they approve it, which of course means the results will always be in MS's favor...so we'll probably never really know the truth. In the end, it's whatever tool is best for the project at hand...and it's the stakeholders in businesses that drive projects, NOT the IT dept.

Reply Score: 2

RE: Flawed Benchmark
by n4cer on Sun 6th Nov 2005 08:25 UTC in reply to "Flawed Benchmark"
n4cer Member since:
2005-07-06

The problem with this is that MS won't allow benchmarks like this with their languages/platforms unless they approve it, which of course means the results will always be in MS's favor...so we'll probably never really know the truth.

MS does allow such benchmarks (excerpt from .NET 2.0 RTM EULA located in %systemroot%Microsoft.NET[backslash]Framework[backslash]v2.0.5 0727[backslash]Microsoft .NET Framework 2.0)

2. MICROSOFT .NET FRAMEWORK BENCHMARK TESTING. This supplement includes the .NET Framework component of the Windows operating systems (“.NET Component”). You may conduct internal benchmark testing of the .NET Component. You may disclose the results of any benchmark test of the .NET Component, provided that you comply with the following terms: (1) you must disclose all the information necessary for replication of the tests, including complete and accurate details of your benchmark testing methodology, the test scripts/cases, tuning parameters applied, hardware and software platforms tested, the name and version number of any third party testing tool used to conduct the testing, and complete source code for the benchmark suite/harness that is developed by or for you and used to test both the .NET Component and the competing implementation(s); (2) you must disclose the date (s) that you conducted the benchmark tests, along with specific version information for all Microsoft software products tested, including the .NET Component; (3) your benchmark testing was performed using all performance tuning and best practice guidance set forth in the product documentation and/or on Microsoft’s support web sites, and uses the latest updates, patches and fixes available for the .NET Component and the relevant Microsoft operating system; (4) it shall be sufficient if you make the disclosures provided for above at a publicly available location such as a website, so long as every public disclosure of the results of your benchmark test expressly identifies the public site containing all required disclosures; and (5) nothing in this provision shall be deemed to waive any other right that you may have to conduct benchmark testing. The foregoing obligations shall not apply to your disclosure of the results of any customized benchmark test of the .NET Component, whereby such disclosure is made under confidentiality in conjunction with a bid request by a prospective customer, such customer’s application(s) are specifically tested and the results are only disclosed to such specific customer. Notwithstanding any other agreement you may have with Microsoft, if you disclose such benchmark test results, Microsoft shall have the right to disclose the results of benchmark tests it conducts of your products that compete with the .NET Component, provided it complies with the same conditions above.

Edited 2005-11-06 08:42

Reply Score: 1

Anonymous
Member since:
---

These tests were very narrowly defined, covering only specific data types. What happens in each test if you swap out data types (double for long, char[] for String, etc)?

I'm not disputing the finding that .Net is more memory efficient than Java -- that may very well be true. I'm disputing whether this test is sufficient to show that.

Reply Score: 0

The is the test?..
by Anonymous on Sat 5th Nov 2005 17:10 UTC
Anonymous
Member since:
---

Well apart all above, where is the test?

I see no any. I see someone clames .NET is better than Java. Well I think .NOT so what? Do you wish I make some graph where Java is 10^10 times faster? I mean in any benchmark we have to ask WHAT are we testing? In what conditions? I even haven't seen the java -XX parameters... I think for the raw data they have to be at least comparable (with java a little better ;-)). I still like to see some tests of .net on some solaris with 16 micros and 128Gb :-) ...or linux at least :-).

.Net has failed. It's almost official.
Cheers

Reply Score: 0

Read more Microsoft press books
by Kris on Sat 5th Nov 2005 17:10 UTC
Kris
Member since:
2005-07-24

Let me quote from one of them:

"Thou Shalt Render Software and Religion Asunder"

Just have all the programmers vote on the language to use and use it. If some company guideline forces you to force the programmers to use a language wich didn't win or was a close second in the vote, quit your job.

Reply Score: 1

Portability
by Anonymous on Sat 5th Nov 2005 18:22 UTC
Anonymous
Member since:
---

I wrote a scripting engine in .NET and the EXACT EXE and DLL files were copied to my linux box and executed under mono perfectly.

Mono also has a beta Windows.Forms implementation so even GUI stuff should work now.

Far superior to java in my opinion.

Reply Score: 0

RE: Portability
by Anonymous on Sat 5th Nov 2005 19:45 UTC in reply to "Portability"
Anonymous Member since:
---

Neither .Net nor Java is a panacea. Anyone who claims either is far superior to the other is an idiot.

I prefer Java, but I, unlike the idiot .Zealots and JZealots, recognize that it is a tool. Use whatever tool works for you, but don't try to be all high and mighty claiming .Net is far superior to Java, or vice versa.

.Net supports far more languages. Java has a number of languages that target the JVM, but .Net has far more. Java isn't good enough to hold .Net's jock strap in this regard.

Java supports far more platforms. Mono is a good start, but it doesn't have the currency or platform coverage to even think about holding Java's jock strap in this area.

Reply Score: 0

wtf?
by Anonymous on Sat 5th Nov 2005 19:16 UTC
Anonymous
Member since:
---

Why are you wasting your time reading this article? Did you think that .net wouldn't run faster on windows? Better yet, why is anyone wasting there time with .net? If you want speed under windows write c or c++ with their libs. Why are you wasting your time with .net? .Net only runs under windows so does c and c++ compiled with MS tools. Why did you think that Java would be faster in windows when it's designed to run on many platforms. How about a .net comparison with Java in linux? Oops, Java won that one since .net runs at 0 speed in linux. Everyone writing .NEt must be an idiot. They should be coding in c or c++. If you use Java, you are writing for write once run anywhere not for blazing speed.

Does no one get this? If I want to write something once and it doesn't have to run blazing fast. I write in Java. If I want to run something super fast, I code in c and assembler with the native platform tools. Could someone tell me why I would want to use a language that only runs on 1 platform that is slower then other languages available for the same platform?

Java has a purpose, what the hell is .net for? Why should a business care about .net?

Reply Score: 0

-server?
by Anonymous on Sun 6th Nov 2005 01:09 UTC
Anonymous
Member since:
---

Did they use the -server Java VM or the default client?

I know this makes a HUGE difference in performance for some benchmarks.

Does anyone know?

Reply Score: 0

Where is source code?
by Anonymous on Sun 6th Nov 2005 01:44 UTC
Anonymous
Member since:
---

I would like to try these tests using the following VM's:

1) IBM JDK 1.4.2 (or 1.5)
2) JRocket 1.5
3) Sun using 1.5.0_05 under both -client and -server modes
4) Sun 1.6 ea (for kicks...I know this is not the current VM)

I bet if the correct VM tuning params were used, the numbers would be different. Also, I have found some performance differences when running (same box) on SuSE Linux 10.

Oh, by the way, who's VM did they use in the test? Suns? IBM's? JRockets?

Also, did they set the initial and maximum heap size? This can have a huge impact on performance. I have found that for short benchmarks, setting the initial heap size made a significant difference.

Where can you get the source code and VM params used?

If the author can not provide these, then I consider these tests purely bogus.

Reply Score: 0

message modding
by Anonymous on Sun 6th Nov 2005 11:57 UTC
Anonymous
Member since:
---

why do so many messages get modded down here? it's not like someone critiscizing java in a non-flame like manner deserves it.

Reply Score: 0

If Sun goes out of business
by Anonymous on Sun 6th Nov 2005 18:55 UTC
Anonymous
Member since:
---

there wont be any complications, because Java is dominated by Sun, but not owned by Sun anymore, Java is controlled by the JCP a consortium, if Sun goes down, someone else (very likely IBM) will take over as the dominant part in the JCP.

Reply Score: 0

Wrong compiler
by Anonymous on Mon 7th Nov 2005 07:47 UTC
Anonymous
Member since:
---

Judging by the lack of information about command line switches it is safe to assume he
didn't know to use the -server switch
This is a classic mistake made by newbies trying to benchmark Java.

The default Java (client) compiler lacks the advanced optimization provided by the server compiler. Using SciMark the Java server compiler is much faster than .NET 2.0. Using the client compiler Java is slower than .NET. Classic newbie stuff.

Tiered compilation is being worked on (either for JDK 6 or JDK 7), which will result in the client and server compilers being combined, with the result that client applications will have access to all the optimisations provided by server compiler.

The C# and Java versions of SciMark are freely available on the net if anyone wants to compare Java (just use the -server switch!) and .NET

I'm afraid this benchmark lacks sufficient substance to have been posted on the front page.

Reply Score: 0