Introducing ABAnalyzer, an Apache Bench runner and analyzer
In the last few days I've read a lot of blog post about Asp.Net MVC Performance. Following the Simone’s post and Rudi’s post i started to test the Asp.Net MVC engine. First of all i wanted to test using the same Apache Bench Tool used by Rudi and wanted to store and compare different results.
After playing with the command prompt a little I started a quick & dirty test runner with c# (I’m working all day with c++ && MFC so I’m always looking for a way to write some .Net code ; D ) and the result is … ABAnalyzer
I want to test the performances of client-side rendering vs server-side rendering so i want to monitor the overall “Request per second” and “Document length” meters. The source code is published in the public code repository of DotNetMarche hosted by Google Code so you can download and play with it (maybe adding functionalities you need). The solution has 2 projects the frontend gui and the services layer (bench runner, analyzer, simple storage) so you can use ABAnalyzer.Services to write your own test tool.
This is the first release (there are few minor bugs I’ve to fix as I can) with just the minimum functionalities I needed to run my tests.
If you want to play with the tool just download the precompiled release (link at the end of this post).
How it works
The “Loaded tests” combo is the list of the test in the current archive (currently only one archive containing an arbitrary number of test addresses); just enter “google” as the test name (and graph label) and fill the others values following the shapshot.
Note: use with care, don’t hammer any website! Stress test should be on local servers.
The “Bootstrap” flag fire a single request before running the test to the test address (to bootstrap the appdomain without affecting the results). The “Add” button just append the test in current list (only one test for single key is allowed), “Start” add the test and run immediately spanning a new process for ab.exe.
The result is shown in plain text (what in the sources I call RawData) (just have to select the test in the combo.. to fix)
The two indicators I want to check are displayed using the Microsoft Chart Control
Redo the test with ibm.com, microsoft.com; now you have 3 loaded test to analyze just for fun: we’ll use the tool to test the same local page and measure the performances of our Asp.NET MVC after each code optimization.