Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/philipmat/di_speed

Speed comparison of Dependency Injection Container
https://github.com/philipmat/di_speed

autofac c-sharp dependency-injection unity

Last synced: about 1 month ago
JSON representation

Speed comparison of Dependency Injection Container

Awesome Lists containing this project

README

        

# Test of speed of DI Containers

Attempting to test the speed of various Dependency Injection Containers.

See the results of my tests here: http://philipm.at/2011/0808/

.Net Containers:

- Autofac
- Castle.Windsor
- ninject
- Spring.Net
- StructureMap
- Unity

This repository contains various branches dedicated to multiple DI usage
scenarios in an attempt to provide a comprehensive landscape for
measurements. Don't rely on the *master* branch maintaining a specific
topic, it might change its content. Instead look at those branches for the
specific scenarios that might be of interest to you.
The only thing I can somewhat promise is that the master branch will have
the most up-to-date spreadsheet with my results.

- *with_isregistered*: checks that the object is registered with the container
before requesting it. This causes some abysmal performance in **Unity**.
- *without_isregistered*: requests the object without performing the
registration check. Has the potential to yield either `NullReferenceException`s
or container specific registration exceptions.
- *ex_vs_isreg*: compares the speed difference between using `IsRegistered`
and handling specific registration exceptions. Spoiler: don't use exceptions.
- *ex_vs_isreg_vs_opt*: **Unity** provides an alternate way to deal with
objects not being registered, `OptionalDependencyAttribute`. This branch,
a bit badly named, attempt to look at how this attribute performs.