Is there any performance different between hosting your asp.net in mono on linux and iis on window server?
相关问题
- Carriage Return (ASCII chr 13) is missing from tex
- How to store image outside of the website's ro
- 'System.Threading.ThreadAbortException' in
- Request.PathInfo issues and XSS attacks
- How to dynamically load partial view Via jquery aj
Mono sucks!
Or more politically correct: Mono is not yet ready for prime time at least for Asp.Net web applications:
EDIT: Added quotes for my post, answer to latest comment.
Note: after deeper check, the implementation of cache in modo is very limited and poor, after recent checks it still holds in newer versions of mono.
So, benchmarking is impossible.
Does referring to post is still not augmentative?
No mono is definitely not ready for prime-time.
First, it was said that publishing performance statistics to compare CLR implementations (.NET vs Mono) is not possible.I am not sure what is the source, but Mono team only published comparison among Mono versions (1.x, 2.0, 2.2, and 2.4), so I assume the saying is real. Therefore, you can only test the performance in your own environment.
Second, Mono is evolving much faster lately, which gives you a chance to gain performance boost simply by upgrading Mono runtime.
Third, please use a different attitude to judge an open source product. For closed source products, you can do nothing but begging its vendor to improve performance or providing your support on how to tune your applications. For open source projects, you have access to the code base, and you can tailor it to suit your own needs, and fix the issues for your own applications.
As jpobst mentioned, even if you cannot fix issues yourself, you can contact the Mono guys.
Here is a nice benchmark where someone tested the difference of windows/IIS vs Linux/Apache/Mono(mod_mono). Crazy enough mod_mono (apache's mono plugin) was significantly more performant. Granted I am sure that in certain circumstances it would be different, but given how low profile linux and apache are plus the great job the mono guys have done, it stands to reason that Linux/Apache/Mono is a better way to go. Now that being said, hopefully with the new open source ASP, we will see some super performant Linux .Net servers coming soon (primed and ready for the cloud).
graph of the performance comparison
I've run mono apps under mod_mono. From a usability, it functions fine, though I didn't do any benchmarks. Still IIS really is an incredibly convenient environment to work in. Given the choice I'd still hosts my web-server in IIS and use linux mono clients to connect to it.
In regards to the suggestion by lextm that publishing the results of perf comparisons is "not possible", the End-User License Agreement (aka EULA) for Windows Vista Ultimate allows it, with conditions.
The conditions, as I read them, are reasonable disclosure requirements: the source code you used to do the testing, the versions of software you tested, the date you conducted the tests, the configuration and optimizations you made, etc.
The EULA for Windows Server 2003 includes the same provisions. I couldn't find the EULA for Windows Server 2008 (the latest incarnation) but I assume the benchmarking provisions remain.
Addendum: If you look in the EULA for Windows7, you will probably find a no-benchmarking clause, or more accurately a no-publish clause; this is because Win7 is still in pre-release. When it is officially released, expect the standard benchmark publishing conditions to be present.
In the past Microsoft had a more restrictive policy on this topic. Basically: you need permission from us (Microsoft) to disclose performance comparisons. This policy has been relaxed, even retroactively to .NET v1.0 and v1.1, as per the link in the above EULA.
Of course there is a difference, just like there is a performance difference between Java and .Net. However, it is going to vary widely based on what the application is doing.
There are things where .Net is much faster than Mono. There are things where Mono is much faster than .Net. There are things where they perform roughly equal. The same holds true when comparing applications running on Windows or Linux. The same holds true when comparing applications running on IIS and Apache.
Likely, either can run your application fast enough, and you will find that your performance is going to be driven by your programming techniques. The difference of a few requests per second probably isn't a huge issue unless you have a large server farm, in which case you most likely have the resources to test on both and see which is faster for your particular application.