Benchmark
Comparison: .NET vs J2EE
Host: Tarun Anand - .NET Evangelist, Microsoft India
May
2, 2002
KunalS_MS: Hello All and welcome to MSDN India Online Developer Forums
- Expert Chat
TarunA_[MS]: Hi All
KunalS_MS: Todays topic is Benchmark Comparison: .NET vs J2EE
KunalS_MS: and please join me in welcoming Tarun Anand
KunalS_MS: Our expert of the day
KunalS_MS: and .NET Technical Evangelist, Microsoft
KunalS_MS: Let me let you all into another secret also
KunalS_MS: Tarun has been part of the CLR development team in US
KunalS_MS: So you all are speaking with the REAL Expert
Guest: In j2ee we have support for EJB or entity beans, does .net
provide similar concept?
TarunA_[MS]: EJB == MTS and so this support has
been there before .net also - we also have support for a concept similar
to entity beans
Guest: what is the similar concept for Applet in .Net?
TarunA_[MS]: look at .net remoting and serviced components
- far richer and much better architecture
Guest: Please do not mind but i think Websphere or weblogic=MTS
TarunA_[MS]: yes but MTS came first
Guest: Tarun i have not seen support for entity beans in MTS. it supports
only components with session management
TarunA_[MS]: MTS and even COM+ does not have entity beans
TarunA_[MS]: the reason is that we have tried this before
and all the times the perf is just too bad
Guest: are there any issues with stability compared to j2ee?
TarunA_[MS]: so if you look at the MS way of doing entity
beans it is to use ADO to do persist and depersist operations, in
other words you do BMP of JEE
Guest: otn.oracle says the revised Pet Store in Oracle 9i is 18 times
better performance than .NET Pet Shop.. What is the answer from MS
for this?
TarunA_[MS]: as I said we have tried that before - also
it is recommended by j2ee best practices
TarunA_[MS]: not to go for CMP but BMP
TarunA_[MS]: well oracle is free to say that - I would
like to look at their source code - is that freely available ?
Guest: i think that is one great feature missing from MTS and com+.
does Microsoft have any plans for incorporating this concept in com+?
TarunA_[MS]: they have claimed to be the best appserver
also (Oracle) but no benchmarks to support that
Guest: Yes It is available at
TarunA_[MS]: Sumeet - we have not found good perf after
implementing entity beans so we have not released it ....
Guest: J2EE provides several design pattern (frame work). Is this
available in .net?
TarunA_[MS]: entity beans have intrinsic problems with
CMP - so you can do the other half BMP with ADO
TarunA_[MS]: I will have to take a look at oracle's code
- I cannot comment without looking at it ...
TarunA_[MS]: design patterns are a good concept and we
have something similar either implicitly (like the singleton concept)
or explicitly via Enterprise templates
TarunA_[MS]: we will also release design patterns
Guest: what are the main advantages of .Net over j2ee?
TarunA_[MS]: I find it a better, more productive dev
environment and also richer support for architects in terms of UML,
ORM, templates, analyzer and so on
TarunA_[MS]: but there are a lots of reasons - look at
the security framework - java has one for JVM and another for JEE
- we have one framework for both configurable by a policy file
Guest: So what's Microsoft's response for IBM's claims?
TarunA_[MS]: as far as the performance goes - we will
have to wait till there are benchmarks - jee community has consistently
shied away from benchmarks
TarunA_[MS]: tell me which benchmarks are you referring
to when you say the perf is better....
Guest: ok why should i use .net instead of j2ee?
TarunA_[MS]: there is no compulsion - try both - I like
the VS.NET IDE, I like ASP.NET I like CLR... and so on... I like delegates
events ...
TarunA_[MS]: I like the .NET compact framework...
Guest: can .net run on other platforms like linux?
TarunA_[MS]: I don't think anyone has complained that
MS technologies are more costly - we give the appserver away for free
TarunA_[MS]: where as BEA and others charge for it..
TarunA_[MS]: .net can run on linux and freebsd
Guest: any way while comparing the deployment cost and license .Net
is costlier than j2ee. right?
TarunA_[MS]: why is .net costlier - what costs more intel
servers or solaris boes ? What is more costly - a free appserver or
a 10000 dollar appserver ?
RahulCh_[MS]: The .Net compact framework can be tuned to run in less
than 2 Mb of RAM, so issue about running on low end machines is not
a problem
TarunA_[MS]: Do you have numbers to support this claim
?
Guest: But from customers point, they are looking for low cost and
performance. Then why they go for .Net ?
TarunA_[MS]: Because I believe that .NET has *both*
Guest: can u tell us more on the web services standards for financial
services and is there a compilation of these that one can study?
TarunA_[MS]: I would like to see benchmarks and actual
numbers to prove otherwise...
TarunA_[MS]: You should check the www.w3c.org site for
references I am not current with financial industry standards
Guest: How would you compare the statelessness of COM+ to that of
the stateful model of EJB's?
TarunA_[MS]: .net remoting and serviced components support
BOTH stateless and stateful components... amen!
Guest: How true are your stats for .NET implementation of JPS (Java
Pet Store). JPS was a tutorial and not the performance tuned example.
In your implementation you have put lot of code inside the database
(SQL Server). Is your comparison ok?
RahulCh_[MS]: CAL model is not used for web servers. Instead a processor
model is used.
TarunA_[MS]: pet store was meant to be a blueprint application
to show the best practices of jee if performance is not a best practice
then what is it ?
TarunA_[MS]: we used stored procedures and datareaders
because we advocate that as a best practice
TarunA_[MS]: if that give us better perf so be it
TarunA_[MS]: the oracle app server was used in the comparison
Guest: Microsofts cost estimate for deploying a Web Service does not
include client access licenses (CALs). In reality, instead of costing
$9,999 for a 4-server deployment, Microsoft .NET would cost $399,996.
[Comment]
Guest: This is due to the fact organizations accessing the Web Service
would require their own Windows 2000 client access licenses to use
the Web Service.
Guest: Microsoft requires the use of BizTalk Server and Application
Center Server, which would add another $311,968 to their cost estimates.
TarunA_[MS]: As Rahul said CAL model is not used for
web servers. Instead a processor model is used
RahulCh_[MS]: Perhaps all the licenses for the clients are being counted
TarunA_[MS]: you should contact your local MS office
to find out the real price - they will give you a quote Guest: tarun
kindly comment on the cost estimates offered!
TarunA_[MS]: Well - client access is important but is
not used to estimate the cost when accessing webservers - that is
if you have 1 client or 1000 clients accessing your webserver your
cost is based on the number of processors in your webserver not the
number of
TarunA_[MS]: people accessing it
Guest: can uml be operated from within the .net environment. If so
is it available with beta version or we need to install rational rose
as well?
TarunA_[MS]: UML is available since beta days in the
enterprise architect edition
TarunA_[MS]: it is visio that has support for UML and
ORM
RahulCh_[MS]: UML Support has been present for the past 4 years
RahulCh_[MS]: in the form of Visual Modeller
RahulCh_[MS]: What has varied was the round trip engineering support
for unmanaged and managed code.
Guest: .NET is a radical departure from COM+, and Visual Studio developers
will have trouble grasping Web Services concepts. Web Services are
a natural and trivial extension to Java, however. Right?
TarunA_[MS]: ok if you say so... but my colleague here
tells me that webservices is not tied to a language or a platform
- is he wrong ?
Guest: Tarun whats the fate of MFC and ATL programmers?? they dont
prefer to work with a cobol guy on .net!! RahulCh_[MS]: ATL has some
classy additions. So does MFC. One radical addition is the ATL server
which takes the ATL fundamentals and applies it to ISAPI programming
TarunA_[MS]: MFC and ATL will eventually be phased out
...... sorry
RahulCh_[MS]: + there is a good chance of standardization with ANSI
so if eventually managed C++ enters the standardization annals, we
can look at it forever.
Guest: Benchmark Comparison on Response time, User load curve, Coding
lines, CPU Usage, resource allocation and access, Varied platform
support, Standardization, Functionality, etc.
TarunA_[MS]: these are all part of the study that is
at www.gotdotnet.com
TarunA_[MS]: what I want to add is that your mileage
varies depending on your application
TarunA_[MS]: Let me clarify that ....
TarunA_[MS]: You should write some samples in both the
platforms and compare - I have done some simple comparisons - and
clr two to five times than jvm
TarunA_[MS]: but take that with a pinch of salt - these
comparisons are done using a loop to do number crunching TarunA_[MS]:
faster
TarunA_[MS]: asp.net with clr works wonders as compared
to jsp
Guest: clr two to five times than jvm - Slow or Fast?
TarunA_[MS]: no one has referred to the NILE benchmark
which is a true benchmark as opposed to PetShop
TarunA_[MS]: that shows clear numbers on how we compare
TarunA_[MS]: I will publish these little tests
Guest: Tarun, why not publish these little benchmarks you performed
online?
TarunA_[MS]: to the community site
TarunA_[MS]: PetShop has not been recognized as a benchmark
- the day it will be then people will take it more seriously
TarunA_[MS]: we believe that it is a good best practice
comparison
Guest: does .net give high performance with Oracle database also.
I mean using using OleDB?
TarunA_[MS]: nope - sql server just screams with .net
TarunA_[MS]: the reason is that we by pass ole db, and
odbc and talk directly to the TDS stream in ADO.NET SQL provider
TarunA_[MS]: so oracle perf will always lag till someone
talks natively to the binary protocol of oracle
RahulCh_[MS]: The managed providers for SQL were written ground up
in managed code and don't result in a managed-unmanaged hit, so perf
is amazing
Guest: In fact what they did was to put lot of code inside the Database
Server (stored stuff) and claimed that the lines of code required
is 1/4! Funny, Isn't it! [Comment]
TarunA_[MS]: that is not correct - the sql server lines
were counted and in that part our lines are higher - please check
again
Guest: what happened to Pet Shop Contest - Any Optimised codes received
from the Industry?
TarunA_[MS]: Yes - we have received some good stuff -
we are evaluating them and will publish the top three
Guest: One thing that was not evedent from the PetShop application,
was that how much performance gain was made from SQL Server and how
much from the ASP.NET pages ... any comments Tarun?
RahulCh_[MS]: There was not much benefit using the managed OLE DB
Provider. Main advantage is that there is no managed-unmanaged transition.
Of course, the enhanced OLE DB API would result in a better overall
design.
RahulCh_[MS]: As it is, the native ODBC/OLEDB Providers have been
tuned for a long time. The main benefit resides from a overall better
design, usage of the framework and the ASP.net compilation and execution
model of ASP.net
SonaliG_[MS]: You need to realize that we are looking at implemeting
the same functionality in .NET. So the performance that we are looking
at is that of the complete application
SonaliG_[MS]: Not just one part of it
SonaliG_[MS]: In ASP.NET you run the compiled code as opposed to interpreted
Guest: How fast (relatively) is ASP.NET compare to JSP. What makes
it different!
TarunA_[MS]: look at the nile benchmark - it shows two
to times more perf of asp.net vs jsp
TarunA_[MS]: two to four times I meant
TarunA_[MS]: we do not have it in vb.net
Guest: Do we have pet shop written in VB.Net rather than C# ?
Guest: Sonali - that's true .. but when you are doing some benchmark
analysis ... this kind of information would be useful to prove the
raw power of ASP.NET .. wouldn't it ?? May be you could direct me
to some other study that shows the exact performance.
TarunA_[MS]: look at nile - that comes closest to a direct
asp.net/jsp comparison
Guest: ASP.NET .. instead of the combined power of ASP.NEt and SQL
Server
Guest: Where is this Nile benchmark comparison?
SonaliG_[MS]: Like Tarun said check the Nile benchmark
TarunA_[MS]: but I agree with Sonali - no real world
application is complete without the database stuff so a comparison
in isolation is not very useful