I’ve recently used Acegi for a simple application and as I wanted to know how
much it loads the webapp I used JMeter to benchmark it. I’ve just spent less
than 30 min. to setup everything, so yake it as is, just a small idea of what
involves adding the Acegi filters to process the requests.
What I have used:
- Tomcat 4.0.6
- Acegi 0.7.0
- JMeter 2.0.2
Acegi filters defined in web.xml:
- A ProcessingFilter made by myself
- HttpSessionIntegrationFilter
- SecurityEnforcementFilter
Here there are the results of three tries, each one with the number of threads,
the ramp-up (delay between threads in seconds), and the loops (number of times
the test was executed). The url tested was not secured.
threads | ramp-up | loop | ||
50 | 1 | 10 | ||
average (ms.) | deviation (ms.) | |||
Using Acegi | 107 | 47 | 15% | |
Not using Acegi | 93 | 82 |
threads | ramp-up | loop | |
50 | 1 | 100 | |
average (ms.) | deviation (ms.) | ||
Using Acegi | 233 | 137 | 13% |
Not using Acegi | 206 | 125 |
threads | ramp-up | loop | |
5 | 1 | 1000 | |
average (ms.) | deviation (ms.) | ||
Using Acegi | 15 | 12 | 67% |
Not using Acegi | 9 | 12 |
You can see that the overhead of using Acegi is about 14% increase of access
time in every page when the load is high. When it’s low, the overhead is
higher, but not relevant.