NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
Mainsoft has released version 2.0 of MainSoft for Java EE (formally known as Visual Mainwin).
"Mainsoft's cross-compilation software establishes C# 2.0 and Visual Basic® as fully supported languages by the Java Virtual Machine," said Yaacov Cohen, president and CEO of Mainsoft.
But perhaps even more interesting than the new release, a report of a
performance study
that suggests a .NET application actually performs better after being cross compiled and deployed on WebSphere than it does running as the original .NET application.
In the study, Mainsoft ported a composite application platform to Java EE using their cross compiler The results were pretty interesting. The Java EE version outperformed the .NET version when running on webSphere, both in Windows and Linux, handling about 8% more requests per second than the original .NET version.
The test also found that as more CPUs were added to the system, the WebSphere version was able to benefit more from increased throughput than the original .NET version.
Response time was also measured under increasing user load, and the test found that on identical 4-CPU systems, the Java version in WebSphere provided at least 4% faster response times across all user loads.
Do .NET applications really run better when cross compiled and run as Java applications? This report seems to suggest so.
Now that makes a lot of sense, regardless of your application development environment(.net or java) you have one deployment platform. It will be intresting to see what microsoft thinks of this.
If their performance report bears any resemblance to reality, this is
just plain humiliating
for Microsoft .NET's runtime stack (CLR, IIS, ASP.NET, Win2K3 Server etc.) Even more so considering that Mainsoft used Websphere as the Java container, and WAS is not reputed as the most efficient J2EE container in the world to say the least.
I'm guessing that a large amount of this performance improvement is due to the underlying OS and the better socket and thread handling. Windows has never been great at this, and is a lightweight deployment platform at best in my experience. Certainly IIS is only going to compound the woes in this regard.
> I'm guessing that a large amount of this
> performance improvement is due to the underlying OS
But it does not have anything to do with the OS. As I pointed out, the Java version was 8% faster on RPS, REGARDLESS of whether WebSphere was running in Windows or on Linux. So it outperformed the .NET version of the same app even when it was running on Windows. The same was true for the scalability test. It was faster, even when running on the the exact same Windows box that the .NET app was.
> But it does not have anything to do with the OS. As I
> pointed out, the Java version was 8% faster on RPS,
> REGARDLESS of whether WebSphere was running in
> Windows or on Linux. So it outperformed the .NET
Umm, yeah, I read the report properly this time. I see what you mean.
I know that IIS is horrible, it may be that. However, in my heart of hearts I find it difficult to believe that IIS is any worse than the behemoth that is Websphere. Having said that, the organisation where I work successfully deploys websphere apps which have some of the largest concurrent online usage patterns in the UK, so it must have something going for it...
Kepping in mind that java-bytecode is somewhat limited when it comes to high-performance/throughput computing, because it lacks structs, (ecplicit) stack-allocation, unsafe code and all those additional low-level information that goes away when compiling to java bytecode these results are very impressive.
The .NET runtime/JIT can easily optimize a lot of stuff (because .NET bytecode allows developers to express low-level wishes) for which Hotspot needs complex analysis.
It just shows how powerful the Hotspot-JIT/VM is and what excellent piece of software recently has been opensourced by Sun I wonder why/when mono and some other free, non-directly java related runtime projects will start using Hotspot#s code based?
> Now that makes a lot of sense, regardless of your
> application development environment(.net or java) you
> have one deployment platform. It will be intresting
> to see what microsoft thinks of this.
if the intention is to carry on developing in C#, I don't think the prospect of a unified deployment platform s particularly compelling.
The amount you'd save in hardware you'd end up spending in time translating between the 2 different worlds and different stacktraces...
The Mainsoft Grasshopper product (the one doing the conversion from .Net to JEE) uses Mono. In fact, Mainsoft is the second largest (behind Novell) contributor to Mono development.
So, Mono has two very good missions in life:
A good language/runtime/toolset for GTK/Gnome development, via GTK# and MonoDevelop.
Conversion of ASP.Net apps to JEE application servers.
There are some places where online systems are in .net and batch systems are in j2ee. And, its probably going to be like that for the near future, so this might be a step to get to a unified deployment model to leverage infrastructure and support resources better. Besides, I think the problem is the microsoft infrastructure and not there development platform.
> A good language/runtime/toolset for GTK/Gnome
> development, via GTK# and MonoDevelop.
Yes I understand this "mission" and I also think its a very important one, as far as I know this is why it has been created - to allow faster/easier/more productive/higher quality programming for Unix and/or Gnome apps.
However as far as I can see it does not do the job very well. The runtime itself is clumsy with a dumb JIT and an underoptimized GC, no class-data shring, etc.
So when comparing both now with java beeing opensource, I still think openjdk is a much better choice. Its more mature, faster and well nothing is perfect. But with some work it could be adopted to fit Gnome well - but its propaply more heroish to do all work him/herself and get the laurels Isn't this also the reason why we have a fragmented default-desktop-enviroment ... because its more heroish to duplicate KDE with ugly existing open tools/libs instead of re-creating the clean and cool QT? Have you ever had a look at GTKs source/design??
> Is this really true?
>
> There is a long history of comparing Java and .NET
> (anyone for a pet store?), but I've never seen this
> claim before.
>
> Reminds me of the claim that Java was faster than C++
> (which turned out to be only true in certain
> circumstances).
Just as C++ is faster than C++ only in certain circumstances...
It's likely true. Whether it's a general truth or true in this particular scenario (or set of) is impossible to say from the information given.
It's likely (as the "C++ is 100 times faster than Java" claims) impossible to say no matter the amount of tests, as there can always be conceived other scenarios.
Do .NET Applications Run Better on Java?
URL: Mainsoft
At 5:14 AM on Jun 25, 2007, Michael Urban wrote:
Fresh Jobs for Developers Post a job opportunity
"Mainsoft's cross-compilation software establishes C# 2.0 and Visual Basic® as fully supported languages by the Java Virtual Machine," said Yaacov Cohen, president and CEO of Mainsoft.
But perhaps even more interesting than the new release, a report of a performance study that suggests a .NET application actually performs better after being cross compiled and deployed on WebSphere than it does running as the original .NET application.
In the study, Mainsoft ported a composite application platform to Java EE using their cross compiler The results were pretty interesting. The Java EE version outperformed the .NET version when running on webSphere, both in Windows and Linux, handling about 8% more requests per second than the original .NET version.
The test also found that as more CPUs were added to the system, the WebSphere version was able to benefit more from increased throughput than the original .NET version.
Response time was also measured under increasing user load, and the test found that on identical 4-CPU systems, the Java version in WebSphere provided at least 4% faster response times across all user loads.
Do .NET applications really run better when cross compiled and run as Java applications? This report seems to suggest so.
14 replies so far (
Post your own)
Re: Do .NET Applications Run Better on Java?
Now that makes a lot of sense, regardless of your application development environment(.net or java) you have one deployment platform. It will be intresting to see what microsoft thinks of this.Re: Do .NET Applications Run Better on Java?
If their performance report bears any resemblance to reality, this is just plain humiliating for Microsoft .NET's runtime stack (CLR, IIS, ASP.NET, Win2K3 Server etc.) Even more so considering that Mainsoft used Websphere as the Java container, and WAS is not reputed as the most efficient J2EE container in the world to say the least.Re: Do .NET Applications Run Better on Java?
I'm guessing that a large amount of this performance improvement is due to the underlying OS and the better socket and thread handling. Windows has never been great at this, and is a lightweight deployment platform at best in my experience. Certainly IIS is only going to compound the woes in this regard.Andrew
Re: Do .NET Applications Run Better on Java?
> I'm guessing that a large amount of this> performance improvement is due to the underlying OS
But it does not have anything to do with the OS. As I pointed out, the Java version was 8% faster on RPS, REGARDLESS of whether WebSphere was running in Windows or on Linux. So it outperformed the .NET version of the same app even when it was running on Windows. The same was true for the scalability test. It was faster, even when running on the the exact same Windows box that the .NET app was.
Re: Do .NET Applications Run Better on Java?
> But it does not have anything to do with the OS. As I> pointed out, the Java version was 8% faster on RPS,
> REGARDLESS of whether WebSphere was running in
> Windows or on Linux. So it outperformed the .NET
Umm, yeah, I read the report properly this time. I see what you mean.
I know that IIS is horrible, it may be that. However, in my heart of hearts I find it difficult to believe that IIS is any worse than the behemoth that is Websphere. Having said that, the organisation where I work successfully deploys websphere apps which have some of the largest concurrent online usage patterns in the UK, so it must have something going for it...
Andrew
Hotspot-server is simply awesome
Kepping in mind that java-bytecode is somewhat limited when it comes to high-performance/throughput computing, because it lacks structs, (ecplicit) stack-allocation, unsafe code and all those additional low-level information that goes away when compiling to java bytecode these results are very impressive.The .NET runtime/JIT can easily optimize a lot of stuff (because .NET bytecode allows developers to express low-level wishes) for which Hotspot needs complex analysis.
It just shows how powerful the Hotspot-JIT/VM is and what excellent piece of software recently has been opensourced by Sun
I wonder why/when mono and some other free, non-directly java related runtime projects will start using Hotspot#s code based?
lg Clemens
Re: Do .NET Applications Run Better on Java?
> Now that makes a lot of sense, regardless of your> application development environment(.net or java) you
> have one deployment platform. It will be intresting
> to see what microsoft thinks of this.
if the intention is to carry on developing in C#, I don't think the prospect of a unified deployment platform s particularly compelling.
The amount you'd save in hardware you'd end up spending in time translating between the 2 different worlds and different stacktraces...
Andrew
Re: Hotspot-server is simply awesome
> I wonder why/when mono and some other free,> non-directly java related runtime projects will start
> using Hotspot#s code based?
Mono: very unlikely. See Miguel's post at http://article.gmane.org/gmane.comp.gnome.mono.devel/21281 for details.
GNU Classpath - Core Libraries
IRC: irc://irc.freenode.org/#classpath | irc://irc.freenode.org/#kaffe
Re: Hotspot-server is simply awesome
The Mainsoft Grasshopper product (the one doing the conversion from .Net to JEE) uses Mono. In fact, Mainsoft is the second largest (behind Novell) contributor to Mono development.So, Mono has two very good missions in life:
A good language/runtime/toolset for GTK/Gnome development, via GTK# and MonoDevelop.
Conversion of ASP.Net apps to JEE application servers.
Re: Do .NET Applications Run Better on Java?
There are some places where online systems are in .net and batch systems are in j2ee. And, its probably going to be like that for the near future, so this might be a step to get to a unified deployment model to leverage infrastructure and support resources better. Besides, I think the problem is the microsoft infrastructure and not there development platform.Re: Do .NET Applications Run Better on Java?
Is this really true?There is a long history of comparing Java and .NET (anyone for a pet store?), but I've never seen this claim before.
Reminds me of the claim that Java was faster than C++ (which turned out to be only true in certain circumstances).
Re: Hotspot-server is simply awesome
One could very easily access "GTK" and other libraries through JNA:https://jna.dev.java.net/
Why try to duplicate Java with Mono when Java already came this far? I just don't get it. Why?
Re: Hotspot-server is simply awesome
> A good language/runtime/toolset for GTK/Gnome> development, via GTK# and MonoDevelop.
Yes I understand this "mission" and I also think its a very important one, as far as I know this is why it has been created - to allow faster/easier/more productive/higher quality programming for Unix and/or Gnome apps.
However as far as I can see it does not do the job very well. The runtime itself is clumsy with a dumb JIT and an underoptimized GC, no class-data shring, etc.
So when comparing both now with java beeing opensource, I still think openjdk is a much better choice. Its more mature, faster and well nothing is perfect. But with some work it could be adopted to fit Gnome well - but its propaply more heroish to do all work him/herself and get the laurels
Isn't this also the reason why we have a fragmented default-desktop-enviroment ... because its more heroish to duplicate KDE with ugly existing open tools/libs instead of re-creating the clean and cool QT? Have you ever had a look at GTKs source/design??
Don't take all this too honest
lg Clemens
Re: Do .NET Applications Run Better on Java?
> Is this really true?>
> There is a long history of comparing Java and .NET
> (anyone for a pet store?), but I've never seen this
> claim before.
>
> Reminds me of the claim that Java was faster than C++
> (which turned out to be only true in certain
> circumstances).
Just as C++ is faster than C++ only in certain circumstances...
It's likely true. Whether it's a general truth or true in this particular scenario (or set of) is impossible to say from the information given.
It's likely (as the "C++ is 100 times faster than Java" claims) impossible to say no matter the amount of tests, as there can always be conceived other scenarios.