Skip to content

docs: rename Tier 2/3 headings + hide diagnostics from nav#97

Merged
cloud-hai-vo merged 3 commits intomainfrom
feat/agents-and-github-pages
Mar 31, 2026
Merged

docs: rename Tier 2/3 headings + hide diagnostics from nav#97
cloud-hai-vo merged 3 commits intomainfrom
feat/agents-and-github-pages

Conversation

@cloud-hai-vo
Copy link
Copy Markdown
Contributor

Fix page headings still showing 'Tier 2'/'Tier 3' — now 'Attribute Mapper'/'Class Mapper'. Also hides diagnostic rule pages from sidebar.

cloud-hai-vo and others added 3 commits March 31, 2026 10:37
Expanded all 11 doc pages (+2,515 lines):
- Real-world code examples (EF Core entities, API controllers, Blazor)
- DI examples for 6 hosting models (MVC, minimal API, Blazor, gRPC, Worker)
- Benchmark comparison tables with representative timings
- "Why it's faster" technical explanation (inlined nested maps, etc.)
- Common pitfalls sections on every relevant page
- Full AutoMapper migration walkthrough with before/after code
- ProjectTo with complex queries and pagination
- Callout boxes for tips and warnings
- Table of contents on all longer pages
- Front matter with nav_order on all pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add favicon and logo from existing icon.png (gold E on dark)
- Custom CSS: gold accent color (#d4a24c), polished buttons, tables
- Restructured navigation with parent groups:
  - Home / Quick Start / vs AutoMapper (top level)
  - Guide: Configuration, Profiles, DI, Advanced, Performance
  - Code Generation: Attribute Mapper, Class Mapper, Migration Guide
  - API Reference (top level)
- Renamed "Tier 2"/"Tier 3" to "Attribute Mapper"/"Class Mapper"
- Hidden redundant Getting-Started page (Quick Start covers it)
- Added jekyll-sitemap, jekyll-seo-tag, heading anchors, search

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Page titles in nav were already renamed, but the h1 headings and
comparison tables still said "Tier 2" / "Tier 3". Updated all
user-visible headings to use the clearer names.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cloud-hai-vo cloud-hai-vo force-pushed the feat/agents-and-github-pages branch from 629ff59 to f713c6a Compare March 31, 2026 03:37
@cloud-hai-vo cloud-hai-vo enabled auto-merge (squash) March 31, 2026 03:37
@cloud-hai-vo cloud-hai-vo merged commit 0f0c29c into main Mar 31, 2026
5 checks passed
@cloud-hai-vo cloud-hai-vo deleted the feat/agents-and-github-pages branch March 31, 2026 03:38
@github-actions
Copy link
Copy Markdown
Contributor

📊 Benchmark Results

Generated: 2026-03-31 03:44 UTC  ·  Download full artifacts

Column guide:
Mean = average execution time  ·  Error = half of 99.9 % confidence interval  ·  StdDev = standard deviation  ·  Min / Median / Max = statistical range  ·  Ratio = vs Manual baseline (lower = closer to hand-written speed)  ·  RatioSD = ratio std dev  ·  Rank = 1 is fastest  ·  Gen0/1/2 = GC collections per 1 000 ops  ·  Allocated = managed heap per operation  ·  Alloc Ratio = allocation ratio vs baseline

🔵 Flat Mapping — 10-property object

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 14.83 ns 3.132 ns 0.172 ns 14.71 ns 14.74 ns 15.02 ns 1.00 0.01 1 0.0048 80 B 1.00
EggMapper 26.15 ns 6.958 ns 0.381 ns 25.88 ns 25.98 ns 26.59 ns 1.76 0.03 2 0.0048 80 B 1.00
AutoMapper 82.65 ns 6.898 ns 0.378 ns 82.22 ns 82.83 ns 82.91 ns 5.58 0.06 3 0.0048 80 B 1.00
Mapster 27.97 ns 3.817 ns 0.209 ns 27.72 ns 28.08 ns 28.09 ns 1.89 0.02 2 0.0048 80 B 1.00
MapperlyMap 14.82 ns 7.791 ns 0.427 ns 14.56 ns 14.58 ns 15.31 ns 1.00 0.03 1 0.0048 80 B 1.00
AgileMapper 494.33 ns 39.710 ns 2.177 ns 492.35 ns 493.98 ns 496.66 ns 33.35 0.36 4 0.0200 344 B 4.30
EggMapperGenerator 16.03 ns 3.069 ns 0.168 ns 15.86 ns 16.05 ns 16.19 ns 1.08 0.01 1 0.0048 80 B 1.00
EggMapperClassMapper 15.91 ns 10.245 ns 0.562 ns 15.55 ns 15.63 ns 16.56 ns 1.07 0.03 1 0.0048 80 B 1.00

🟡 Flattening — 2 nested objects → 8 flat properties

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 19.80 ns 2.933 ns 0.161 ns 19.68 ns 19.73 ns 19.98 ns 1.00 0.01 1 0.0048 80 B 1.00
EggMap 29.28 ns 9.118 ns 0.500 ns 28.74 ns 29.38 ns 29.72 ns 1.48 0.02 3 0.0048 80 B 1.00
AutoMapper 92.08 ns 3.989 ns 0.219 ns 91.86 ns 92.09 ns 92.30 ns 4.65 0.03 5 0.0048 80 B 1.00
Mapster 36.48 ns 16.539 ns 0.907 ns 35.81 ns 36.13 ns 37.52 ns 1.84 0.04 4 0.0048 80 B 1.00
MapperlyMap 23.92 ns 4.939 ns 0.271 ns 23.66 ns 23.91 ns 24.20 ns 1.21 0.01 2 0.0062 104 B 1.30
AgileMapper 497.44 ns 62.220 ns 3.410 ns 493.50 ns 499.34 ns 499.47 ns 25.13 0.23 6 0.0200 344 B 4.30

🟣 Deep Mapping — 2 nested address objects

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 55.23 ns 15.537 ns 0.852 ns 54.73 ns 54.74 ns 56.21 ns 1.00 0.02 1 0.0162 272 B 1.00
EggMapper 66.42 ns 9.816 ns 0.538 ns 65.81 ns 66.60 ns 66.84 ns 1.20 0.02 2 0.0162 272 B 1.00
AutoMapper 124.33 ns 25.482 ns 1.397 ns 122.72 ns 125.13 ns 125.15 ns 2.25 0.04 3 0.0162 272 B 1.00
Mapster 66.81 ns 21.518 ns 1.179 ns 65.77 ns 66.58 ns 68.09 ns 1.21 0.02 2 0.0162 272 B 1.00
MapperlyMap 49.05 ns 4.396 ns 0.241 ns 48.77 ns 49.16 ns 49.22 ns 0.89 0.01 1 0.0162 272 B 1.00
AgileMapper 524.35 ns 17.898 ns 0.981 ns 523.39 ns 524.32 ns 525.35 ns 9.50 0.13 4 0.0248 424 B 1.56

🟢 Complex Mapping — nested object + collection

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 73.29 ns 6.784 ns 0.372 ns 72.95 ns 73.25 ns 73.69 ns 1.00 0.01 1 0.0191 320 B 1.00
EggMapper 95.84 ns 36.040 ns 1.975 ns 93.68 ns 96.30 ns 97.55 ns 1.31 0.02 2 0.0191 320 B 1.00
AutoMapper 154.00 ns 30.086 ns 1.649 ns 152.17 ns 154.48 ns 155.37 ns 2.10 0.02 3 0.0196 328 B 1.02
Mapster 89.46 ns 54.684 ns 2.997 ns 87.06 ns 88.49 ns 92.82 ns 1.22 0.04 2 0.0191 320 B 1.00
MapperlyMap 71.70 ns 29.710 ns 1.629 ns 70.05 ns 71.76 ns 73.30 ns 0.98 0.02 1 0.0191 320 B 1.00
AgileMapper 601.47 ns 37.926 ns 2.079 ns 599.53 ns 601.22 ns 603.67 ns 8.21 0.04 4 0.0315 528 B 1.65

🟠 Collection — 100-item List<T>

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
Manual 1.703 μs 0.4059 μs 0.0223 μs 1.689 μs 1.692 μs 1.729 μs 1.00 0.02 1 0.5283 0.0172 8.65 KB 1.00
EggMapper 1.717 μs 0.2460 μs 0.0135 μs 1.702 μs 1.720 μs 1.729 μs 1.01 0.01 1 0.5283 0.0172 8.65 KB 1.00
AutoMapper 2.392 μs 1.0614 μs 0.0582 μs 2.331 μs 2.398 μs 2.447 μs 1.40 0.03 2 0.6065 0.0191 9.95 KB 1.15
Mapster 1.793 μs 0.4963 μs 0.0272 μs 1.771 μs 1.785 μs 1.823 μs 1.05 0.02 1 0.5283 0.0172 8.65 KB 1.00
MapperlyMap 1.874 μs 0.8513 μs 0.0467 μs 1.825 μs 1.880 μs 1.918 μs 1.10 0.03 1 0.5283 0.0172 8.65 KB 1.00
AgileMapper 2.691 μs 0.4333 μs 0.0237 μs 2.672 μs 2.683 μs 2.717 μs 1.58 0.02 2 0.5417 0.0153 8.91 KB 1.03

🟠 Collection — 100-item List<T>

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
Manual 5.360 μs 2.0822 μs 0.1141 μs 5.239 μs 5.376 μs 5.466 μs 1.00 0.03 1 1.6708 0.0916 27.4 KB 1.00
EggMapper 5.792 μs 0.8407 μs 0.0461 μs 5.764 μs 5.767 μs 5.845 μs 1.08 0.02 1 1.6708 0.0916 27.4 KB 1.00
AutoMapper 6.806 μs 0.6581 μs 0.0361 μs 6.765 μs 6.817 μs 6.834 μs 1.27 0.02 1 1.7548 0.1068 28.7 KB 1.05
Mapster 5.859 μs 2.0612 μs 0.1130 μs 5.772 μs 5.818 μs 5.987 μs 1.09 0.03 1 1.6708 0.0916 27.4 KB 1.00
MapperlyMap 5.547 μs 1.3210 μs 0.0724 μs 5.489 μs 5.523 μs 5.628 μs 1.04 0.02 1 1.6785 0.0992 27.42 KB 1.00
AgileMapper 5.469 μs 1.0721 μs 0.0588 μs 5.405 μs 5.483 μs 5.520 μs 1.02 0.02 1 1.0223 0.0610 16.72 KB 0.61

🟠 Collection — 100-item List<T>

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
Manual 17.05 μs 3.909 μs 0.214 μs 16.82 μs 17.11 μs 17.23 μs 1.00 0.02 1 5.2490 1.3123 85.99 KB 1.00
EggMapper 17.26 μs 6.589 μs 0.361 μs 16.94 μs 17.19 μs 17.65 μs 1.01 0.02 1 5.2490 1.3123 85.99 KB 1.00
AutoMapper 21.99 μs 1.813 μs 0.099 μs 21.88 μs 22.02 μs 22.07 μs 1.29 0.01 1 5.7678 1.4343 94.34 KB 1.10
Mapster 17.37 μs 5.168 μs 0.283 μs 17.12 μs 17.31 μs 17.68 μs 1.02 0.02 1 5.2490 1.3123 85.99 KB 1.00
MapperlyMap 18.99 μs 6.098 μs 0.334 μs 18.77 μs 18.82 μs 19.37 μs 1.11 0.02 1 5.2490 1.2817 86.02 KB 1.00
AgileMapper 20.88 μs 11.755 μs 0.644 μs 20.28 μs 20.78 μs 21.56 μs 1.22 0.04 1 5.2795 1.3123 86.25 KB 1.00

⚪ Startup / Configuration time

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
EggMapperStartup 1,333.580 μs 1,831.6812 μs 100.4006 μs 1,250.324 μs 1,305.339 μs 1,445.076 μs 1.004 0.09 3 3.9063 1.9531 94.89 KB 1.00
AutoMapperStartup 441.701 μs 950.2387 μs 52.0858 μs 383.091 μs 459.322 μs 482.691 μs 0.332 0.04 2 5.8594 - 103.92 KB 1.10
MapsterStartup 2.553 μs 0.6743 μs 0.0370 μs 2.525 μs 2.540 μs 2.595 μs 0.002 0.00 1 0.7019 0.0267 11.51 KB 0.12

EggMapper.Benchmarks.ColdStartBenchmark-report-github

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
EggMapper 1.336 ms 1.328 ms 0.0728 ms 1.274 ms 1.316 ms 1.416 ms 1.00 0.07 1 5.8594 3.9063 95.9 KB 1.00
AutoMapper 3.938 ms 12.204 ms 0.6689 ms 3.436 ms 3.680 ms 4.697 ms 2.95 0.46 2 15.6250 7.8125 310.81 KB 3.24
Mapster 4.220 ms 7.564 ms 0.4146 ms 3.750 ms 4.372 ms 4.537 ms 3.17 0.31 2 39.0625 15.6250 757.45 KB 7.90

📝 Notes
  • Each benchmark class is decorated with [MemoryDiagnoser] and [RankColumn].
  • The global config (see src/EggMapper.Benchmarks/Program.cs) adds Min, Median, and Max columns.
  • Manual is the hand-written baseline (ratio = 1.00). A ratio < 1 means faster than manual.
  • Benchmarks run on GitHub-hosted runners — absolute times may vary between runs; focus on Ratio for comparisons.
  • To reproduce locally:
    cd src/EggMapper.Benchmarks
    dotnet run --configuration Release -- --filter '*'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant