Skip to content

docs: dark theme, SEO optimization, comparison page#95

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

docs: dark theme, SEO optimization, comparison page#95
cloud-hai-vo merged 1 commit intomainfrom
feat/agents-and-github-pages

Conversation

@cloud-hai-vo
Copy link
Copy Markdown
Contributor

Changes

  • Dark theme — switched to just-the-docs with dark color scheme, search, sidebar nav
  • SEO — sitemap, robots.txt, seo-tag plugin, keyword-rich descriptions
  • "EggMapper vs AutoMapper" page — targets high-value comparison search queries
  • Navigation — all doc pages now have front matter with nav_order for sidebar
  • GitHub homepage URL — set to eggspot.github.io/EggMapper

After merge

  1. Go to repo Settings → Pages → Source → GitHub Actions
  2. Site will deploy at https://eggspot.github.io/EggMapper/
  3. Submit sitemap URL to Google Search Console

SEO next steps (manual, after site is live)

  • Submit to Google Search Console
  • Post on r/dotnet + dev.to with benchmark results
  • PR to awesome-dotnet list

🤖 Generated with Claude Code

- Switch to just-the-docs theme with dark color scheme
- Add jekyll-sitemap + jekyll-seo-tag plugins
- Add robots.txt with sitemap reference
- Add "EggMapper vs AutoMapper" comparison page (SEO target)
- Add front matter with nav_order to all existing doc pages
- Set GitHub repo homepage URL to eggspot.github.io/EggMapper
- Add search, back-to-top, aux navigation links

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 f77efe0 to d9b3cd9 Compare March 31, 2026 02:31
@cloud-hai-vo cloud-hai-vo enabled auto-merge (squash) March 31, 2026 02:31
@cloud-hai-vo cloud-hai-vo merged commit cb1f96e 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 02:32
@github-actions
Copy link
Copy Markdown
Contributor

📊 Benchmark Results

Generated: 2026-03-31 02:37 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 15.30 ns 5.571 ns 0.305 ns 15.03 ns 15.25 ns 15.63 ns 1.00 0.02 1 0.0048 80 B 1.00
EggMapper 26.16 ns 4.184 ns 0.229 ns 25.90 ns 26.22 ns 26.35 ns 1.71 0.03 2 0.0048 80 B 1.00
AutoMapper 81.05 ns 6.192 ns 0.339 ns 80.66 ns 81.18 ns 81.30 ns 5.30 0.09 3 0.0048 80 B 1.00
Mapster 27.47 ns 3.045 ns 0.167 ns 27.28 ns 27.54 ns 27.59 ns 1.80 0.03 2 0.0048 80 B 1.00
MapperlyMap 14.92 ns 10.211 ns 0.560 ns 14.51 ns 14.69 ns 15.56 ns 0.98 0.04 1 0.0048 80 B 1.00
AgileMapper 487.58 ns 66.083 ns 3.622 ns 484.74 ns 486.36 ns 491.66 ns 31.87 0.58 4 0.0200 344 B 4.30
EggMapperGenerator 15.56 ns 2.303 ns 0.126 ns 15.47 ns 15.51 ns 15.71 ns 1.02 0.02 1 0.0048 80 B 1.00
EggMapperClassMapper 15.64 ns 6.705 ns 0.368 ns 15.30 ns 15.59 ns 16.03 ns 1.02 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.19 ns 5.517 ns 0.302 ns 18.95 ns 19.10 ns 19.53 ns 1.00 0.02 1 0.0048 80 B 1.00
EggMap 35.09 ns 15.951 ns 0.874 ns 34.31 ns 34.94 ns 36.04 ns 1.83 0.05 3 0.0048 80 B 1.00
AutoMapper 91.11 ns 13.605 ns 0.746 ns 90.38 ns 91.08 ns 91.87 ns 4.75 0.07 4 0.0048 80 B 1.00
Mapster 35.65 ns 3.945 ns 0.216 ns 35.42 ns 35.67 ns 35.85 ns 1.86 0.03 3 0.0048 80 B 1.00
MapperlyMap 23.77 ns 1.770 ns 0.097 ns 23.69 ns 23.75 ns 23.88 ns 1.24 0.02 2 0.0062 104 B 1.30
AgileMapper 500.39 ns 23.985 ns 1.315 ns 499.44 ns 499.83 ns 501.89 ns 26.08 0.36 5 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 52.27 ns 4.728 ns 0.259 ns 51.97 ns 52.41 ns 52.43 ns 1.00 0.01 1 0.0162 272 B 1.00
EggMapper 65.25 ns 44.513 ns 2.440 ns 63.77 ns 63.90 ns 68.06 ns 1.25 0.04 2 0.0162 272 B 1.00
AutoMapper 119.90 ns 44.150 ns 2.420 ns 117.52 ns 119.84 ns 122.36 ns 2.29 0.04 3 0.0162 272 B 1.00
Mapster 69.43 ns 21.744 ns 1.192 ns 68.54 ns 68.97 ns 70.79 ns 1.33 0.02 2 0.0162 272 B 1.00
MapperlyMap 50.74 ns 9.357 ns 0.513 ns 50.20 ns 50.81 ns 51.22 ns 0.97 0.01 1 0.0162 272 B 1.00
AgileMapper 518.21 ns 15.401 ns 0.844 ns 517.29 ns 518.38 ns 518.96 ns 9.91 0.04 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 70.24 ns 12.12 ns 0.664 ns 69.76 ns 69.97 ns 71.00 ns 1.00 0.01 1 0.0191 320 B 1.00
EggMapper 94.84 ns 14.34 ns 0.786 ns 94.22 ns 94.56 ns 95.72 ns 1.35 0.01 2 0.0191 320 B 1.00
AutoMapper 156.46 ns 24.34 ns 1.334 ns 154.92 ns 157.21 ns 157.25 ns 2.23 0.02 3 0.0196 328 B 1.02
Mapster 89.57 ns 11.70 ns 0.641 ns 88.91 ns 89.62 ns 90.19 ns 1.28 0.01 2 0.0191 320 B 1.00
MapperlyMap 72.24 ns 31.28 ns 1.714 ns 70.80 ns 71.78 ns 74.14 ns 1.03 0.02 1 0.0191 320 B 1.00
AgileMapper 587.59 ns 59.65 ns 3.270 ns 584.84 ns 586.74 ns 591.21 ns 8.37 0.08 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.915 μs 0.6251 μs 0.0343 μs 1.875 μs 1.934 μs 1.935 μs 1.00 0.02 1 0.5283 0.0172 8.65 KB 1.00
EggMapper 1.929 μs 0.2442 μs 0.0134 μs 1.921 μs 1.922 μs 1.945 μs 1.01 0.02 1 0.5283 0.0172 8.65 KB 1.00
AutoMapper 2.586 μs 0.1989 μs 0.0109 μs 2.574 μs 2.588 μs 2.595 μs 1.35 0.02 2 0.6065 0.0191 9.95 KB 1.15
Mapster 1.754 μs 0.1620 μs 0.0089 μs 1.744 μs 1.758 μs 1.760 μs 0.92 0.01 1 0.5283 0.0172 8.65 KB 1.00
MapperlyMap 1.799 μs 0.2804 μs 0.0154 μs 1.782 μs 1.803 μs 1.812 μs 0.94 0.02 1 0.5283 0.0172 8.65 KB 1.00
AgileMapper 2.602 μs 1.0395 μs 0.0570 μs 2.565 μs 2.572 μs 2.667 μs 1.36 0.03 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.726 μs 1.4273 μs 0.0782 μs 5.637 μs 5.756 μs 5.785 μs 1.00 0.02 1 1.6708 0.0916 27.4 KB 1.00
EggMapper 6.205 μs 1.8282 μs 0.1002 μs 6.096 μs 6.224 μs 6.294 μs 1.08 0.02 1 1.6708 0.0916 27.4 KB 1.00
AutoMapper 6.961 μs 5.4801 μs 0.3004 μs 6.709 μs 6.880 μs 7.293 μs 1.22 0.05 1 1.7548 0.1068 28.7 KB 1.05
Mapster 6.405 μs 0.7315 μs 0.0401 μs 6.359 μs 6.425 μs 6.431 μs 1.12 0.01 1 1.6708 0.0916 27.4 KB 1.00
MapperlyMap 5.959 μs 1.6135 μs 0.0884 μs 5.871 μs 5.959 μs 6.047 μs 1.04 0.02 1 1.6785 0.0992 27.42 KB 1.00
AgileMapper 5.538 μs 1.0829 μs 0.0594 μs 5.482 μs 5.533 μs 5.600 μs 0.97 0.01 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 16.88 μs 3.135 μs 0.172 μs 16.74 μs 16.84 μs 17.07 μs 1.00 0.01 1 5.2490 1.3123 85.99 KB 1.00
EggMapper 17.68 μs 6.400 μs 0.351 μs 17.43 μs 17.52 μs 18.08 μs 1.05 0.02 1 5.2490 1.3123 85.99 KB 1.00
AutoMapper 22.31 μs 11.874 μs 0.651 μs 21.62 μs 22.40 μs 22.91 μs 1.32 0.04 1 5.7678 1.4343 94.34 KB 1.10
Mapster 18.43 μs 11.542 μs 0.633 μs 17.71 μs 18.70 μs 18.88 μs 1.09 0.03 1 5.2490 1.3123 85.99 KB 1.00
MapperlyMap 19.12 μs 8.749 μs 0.480 μs 18.57 μs 19.32 μs 19.46 μs 1.13 0.03 1 5.2490 1.2817 86.02 KB 1.00
AgileMapper 20.20 μs 3.835 μs 0.210 μs 20.06 μs 20.09 μs 20.44 μs 1.20 0.02 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,286.768 μs 1,781.7623 μs 97.6644 μs 1,181.964 μs 1,303.110 μs 1,375.231 μs 1.004 0.09 3 3.9063 1.9531 95.23 KB 1.00
AutoMapperStartup 372.311 μs 1,078.4065 μs 59.1111 μs 328.559 μs 348.817 μs 439.557 μs 0.290 0.04 2 5.8594 - 104.04 KB 1.09
MapsterStartup 2.501 μs 0.1898 μs 0.0104 μs 2.489 μs 2.506 μs 2.508 μ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.303 ms 1.690 ms 0.0926 ms 1.199 ms 1.338 ms 1.374 ms 1.00 0.09 1 5.8594 3.9063 96.31 KB 1.00
AutoMapper 4.004 ms 8.019 ms 0.4395 ms 3.671 ms 3.839 ms 4.502 ms 3.08 0.35 2 15.6250 7.8125 310.71 KB 3.23
Mapster 4.139 ms 14.219 ms 0.7794 ms 3.367 ms 4.125 ms 4.926 ms 3.19 0.56 2 39.0625 15.6250 753.92 KB 7.83

📝 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