vNext Performances Test
A new creature from Microsoft hit the public: Asp.Net VNext. It's a new modular framework, optimized for cloud deployment, to host ASP.NET application on IIS, Helios and through command line. It does not depends on System.Web anymore and promise a series of facilitations.
Developing Node.Cs that is very similar (apart for the coroutine based approach), i decided to give it a try. Since i have a NodeCs Music Store based on the Microsoft MvcMusicStore i have chosen to start with the VNext MusicStore sample.
DONT WORRY IF THE SOLUTION DOES NOT
LOAD CORRECTLY! THE KPROJ FILES ARE
NOT YET SUPPORTED!
Installation
First, if you have never heard about K Version Manager you should Install it
- Clone the VNext repository or download the zip with the full data. Let say we put it into C:\VNext\Home
- Open a command prompt go to C:\VNext\Home and run ''kvmsetup.cmd''. It adds kvm to your path and puts it in your user profile.
- Run then ''kvm install 0.1-alpha-build-0421''
- If an exception raise of the kind
Unable to find type [System.IO.Compression.ZipFile]
please install the new Powershell. This is likely to happen on Windows 7...- Download the Windows Management Framework 4.0
- You could download several files. The imporant ones are
- Windows6.1-KB2819745-x64-MultiPkg.msu for Windows 7 64 bits
- Windows6.1-KB2819745-x86-MultiPkg.msu for Windows 7 32 bits
- Windows8-RT-KB2799888-x64.msu for Windows 8 RT 64 bits
- Install the required file for your OS
- Now download the VNext MusicStore we will put it into C:\VNext\MusicStore and DO NOT CLOSE THE COMMAND PROMPT!!
- Change the command prompt dir on C:\VNext\MusicStore\src\MusicStore
- Run
kpm restore
to install all packages needed by the application
Running the Server
There are 3 options to run the sample!!!
- With Helios and IISExpress. Running the
Helios.cmd
command. That will start a server on localhost:5001 - With SelfHost, so no IIS. Running
k web
command. That will start a server on localhost:5002 - With CustomHost, so no IIS. Running
k run
command. That will start a server on localhost:5003
If you want to have a comparaison, inside the MusicStore solution exists two other projects
- MvcMusicStore: The MvcMusicStore updated to the last Asp.Net and Mvc version all aysnc/await based
- MvcMusicStore.Spa: The MvcMusicStore as a Single Page Application. updated to the last Asp.Net and Mvc version all aysnc/await based
IMPORTANT NOTE (2014 May 16)
REMEMBER THAT, AS STATED BY THE DEVELOPERS,
THE PERFORMANCE OPTIMIZATION IS NOT YET
STARTED.
Premature optimization is the root of all evil (Donald Knuth)
A Simple Test (2014 May 14)
I usally use Apache JMeter to load/perf test the applications.
My machine is an HP DV6 6030EL "standard" with Windows 7 Professional, Visual Studio 2012 Ultimate
The test bench that i use is like this:
- 100 Concurrent users
- Pages hitted:
- Only the pages are retrieved, not the embedded content (images, css, js etc)
- Run up to 20000 requests
The result were the following
- Helios: 26 req/s total
- SelfHost: 18 req/s total
- CustomHost: 19 req/s total
- Mvc: 440 req/s total
- Original MvcMusicStore: 90 req/s
Not that impressive... i posted some comment on this topic on Fowlers'page and around the internet to chek if i am doing somthing wrong!
The only impressive result is the Mvc version that beats the original MvcMusiStore!
Please tell me i'm doing something wrong!! :O