{"id":21900324,"url":"https://github.com/philipmat/di_speed","last_synced_at":"2025-04-15T19:53:54.063Z","repository":{"id":144778921,"uuid":"1920118","full_name":"philipmat/di_speed","owner":"philipmat","description":"Speed comparison of Dependency Injection Container","archived":false,"fork":false,"pushed_at":"2011-12-04T08:05:20.000Z","size":2468,"stargazers_count":18,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T00:33:36.098Z","etag":null,"topics":["autofac","c-sharp","dependency-injection","unity"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/philipmat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-06-19T17:53:17.000Z","updated_at":"2021-07-26T07:32:14.000Z","dependencies_parsed_at":"2023-03-22T11:49:28.834Z","dependency_job_id":null,"html_url":"https://github.com/philipmat/di_speed","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipmat%2Fdi_speed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipmat%2Fdi_speed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipmat%2Fdi_speed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philipmat%2Fdi_speed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philipmat","download_url":"https://codeload.github.com/philipmat/di_speed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249145295,"owners_count":21219966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autofac","c-sharp","dependency-injection","unity"],"created_at":"2024-11-28T15:07:24.976Z","updated_at":"2025-04-15T19:53:54.042Z","avatar_url":"https://github.com/philipmat.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Test of speed of DI Containers\n\nAttempting to test the speed of various Dependency Injection Containers.\n\nSee the results of my tests here: http://philipm.at/2011/0808/\n\n.Net Containers:\n\n- Autofac\n- Castle.Windsor\n- ninject \n- Spring.Net\n- StructureMap\n- Unity\n\nThis repository contains various branches dedicated to multiple DI usage \nscenarios in an attempt to provide a comprehensive landscape for \nmeasurements. Don't rely on the *master* branch maintaining a specific \ntopic, it might change its content. Instead look at those branches for the \nspecific scenarios that might be of interest to you.\nThe only thing I can somewhat promise is that the master branch will have\nthe most up-to-date spreadsheet with my results.\n\n- *with_isregistered*: checks that the object is registered with the container \nbefore requesting it. This causes some abysmal performance in **Unity**.\n- *without_isregistered*: requests the object without performing the \nregistration check. Has the potential to yield either `NullReferenceException`s \nor container specific registration exceptions.\n- *ex_vs_isreg*: compares the speed difference between using `IsRegistered` \nand handling specific registration exceptions. Spoiler: don't use exceptions.\n- *ex_vs_isreg_vs_opt*: **Unity** provides an alternate way to deal with \nobjects not being registered, `OptionalDependencyAttribute`. This branch,\na bit badly named, attempt to look at how this attribute performs.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilipmat%2Fdi_speed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilipmat%2Fdi_speed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilipmat%2Fdi_speed/lists"}