{"id":17037973,"url":"https://github.com/kzu/mappingbenchmark","last_synced_at":"2026-03-01T21:37:10.244Z","repository":{"id":141701002,"uuid":"565602851","full_name":"kzu/MappingBenchmark","owner":"kzu","description":"A comparison of in-memory mapping approaches","archived":false,"fork":false,"pushed_at":"2024-07-09T22:04:37.000Z","size":50,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-21T16:03:18.955Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kzu.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"devlooped"}},"created_at":"2022-11-13T22:45:44.000Z","updated_at":"2024-02-14T15:11:47.000Z","dependencies_parsed_at":"2024-02-14T22:26:45.511Z","dependency_job_id":"50fbc073-ec83-437b-a69b-74b745f79030","html_url":"https://github.com/kzu/MappingBenchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kzu/MappingBenchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kzu%2FMappingBenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kzu%2FMappingBenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kzu%2FMappingBenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kzu%2FMappingBenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kzu","download_url":"https://codeload.github.com/kzu/MappingBenchmark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kzu%2FMappingBenchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29984725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T21:06:37.093Z","status":"ssl_error","status_checked_at":"2026-03-01T21:05:45.052Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-14T08:55:37.459Z","updated_at":"2026-03-01T21:37:10.206Z","avatar_url":"https://github.com/kzu.png","language":"C#","funding_links":["https://github.com/sponsors/devlooped"],"categories":[],"sub_categories":[],"readme":"## In-Memory Mapping Benchmarks\n\nTests the following approaches:\n\n1. Dynamic: creating object (hierarchies) by direct assignment of values from \n   a `dynamic` (anonymous) object using C# DLR dispatch\n2. AutoMapper: using the same in-memory (anonymous) object and mapping to a \n   typed model.\n3. MessagePack: deserializing from a memory stream (same object structure, but\n   from annotated object model)\n4. System.Text.Json: deserializing from a memory stream populated by serializing \n   the (anonymous) object using Json.\n\n![results](mapping.png)\n\n``` ini\n\nBenchmarkDotNet v0.13.12, Windows 11 (10.0.22622.575)\nIntel Core i9-10900T CPU 1.90GHz, 1 CPU, 20 logical and 10 physical cores\n.NET SDK 9.0.100-preview.2.24074.1\n  [Host]               : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2\n  .NET 6.0             : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2\n  .NET 8.0             : .NET 8.0.1 (8.0.123.58001), X64 RyuJIT AVX2\n  .NET Framework 4.7.2 : .NET Framework 4.8.1 (4.8.9181.0), X64 RyuJIT VectorSize=256\n\n\n```\n|      Method |                  Job |              Runtime |      Mean |    Error |   StdDev | Ratio |    Gen0 |   Gen1 | Allocated | Alloc Ratio |\n|------------ |--------------------- |--------------------- |----------:|---------:|---------:|------:|--------:|-------:|----------:|------------:|\n|     Dynamic |             .NET 6.0 |             .NET 6.0 |  20.62 μs | 0.372 μs | 0.290 μs |  0.55 |  3.2043 | 0.0916 |  32.82 KB |        0.87 |\n|     Dynamic |             .NET 7.0 |             .NET 7.0 |  20.08 μs | 0.307 μs | 0.257 μs |  0.54 |  3.2043 | 0.0916 |  32.82 KB |        0.87 |\n|     Dynamic | .NET Framework 4.7.2 | .NET Framework 4.7.2 |  37.34 μs | 0.320 μs | 0.284 μs |  1.00 |  6.1035 | 0.1831 |  37.63 KB |        1.00 |\n|             |                      |                      |           |          |          |       |         |        |           |             |\n|  AutoMapper |             .NET 6.0 |             .NET 6.0 |  15.79 μs | 0.284 μs | 0.237 μs |  0.47 |  2.2888 | 0.0610 |  23.41 KB |        0.83 |\n|  AutoMapper |             .NET 7.0 |             .NET 7.0 |  15.65 μs | 0.153 μs | 0.143 μs |  0.46 |  2.2888 | 0.0610 |  23.41 KB |        0.83 |\n|  AutoMapper | .NET Framework 4.7.2 | .NET Framework 4.7.2 |  33.68 μs | 0.374 μs | 0.350 μs |  1.00 |  4.5776 | 0.1221 |   28.2 KB |        1.00 |\n|             |                      |                      |           |          |          |       |         |        |           |             |\n| MessagePack |             .NET 6.0 |             .NET 6.0 |  13.91 μs | 0.104 μs | 0.092 μs |  0.59 |  2.1515 | 0.0610 |  22.11 KB |        0.82 |\n| MessagePack |             .NET 7.0 |             .NET 7.0 |  13.39 μs | 0.094 μs | 0.088 μs |  0.57 |  2.1515 | 0.0610 |  22.11 KB |        0.82 |\n| MessagePack | .NET Framework 4.7.2 | .NET Framework 4.7.2 |  23.46 μs | 0.265 μs | 0.222 μs |  1.00 |  4.3640 | 0.1221 |  26.89 KB |        1.00 |\n|             |                      |                      |           |          |          |       |         |        |           |             |\n| System Json |             .NET 6.0 |             .NET 6.0 | 122.63 μs | 1.462 μs | 1.368 μs |  0.54 |  6.3477 | 0.7324 |  65.71 KB |        0.93 |\n| System Json |             .NET 7.0 |             .NET 7.0 | 117.95 μs | 1.102 μs | 0.977 μs |  0.52 |  6.1035 | 0.6104 |  63.39 KB |        0.90 |\n| System Json | .NET Framework 4.7.2 | .NET Framework 4.7.2 | 228.99 μs | 1.725 μs | 1.529 μs |  1.00 | 11.4746 | 0.7324 |  70.63 KB |        1.00 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkzu%2Fmappingbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkzu%2Fmappingbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkzu%2Fmappingbenchmark/lists"}