惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
V
Visual Studio Blog
雷峰网
雷峰网
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog RSS Feed
C
Check Point Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
D
Docker
IT之家
IT之家
博客园 - 聂微东
腾讯CDC
U
Unit 42
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I needed up-to-date .NET mapper benchmarks. They didn't e...
Jagoba Inda Arizaleta · 2026-06-24 · via DEV Community

The day AutoMapper stopped being a no-brainer

For years, AutoMapper was the default. You added the NuGet package, wrote a profile, and never thought about it again. That changed for me in 2025.

Two things happened almost back to back:

  1. AutoMapper went commercial. On July 2, 2025, Jimmy Bogard announced commercial editions of AutoMapper (and MediatR) under a new company, Lucky Penny Software. It's still free for individuals and companies under $5M USD in annual revenue, but above that you now need a paid license. (announcement)
  2. The last freely-patchable version got a high-severity CVE. CVE-2026-32933 (CVSS 7.5, High) is a Denial-of-Service via uncontrolled recursion: map a deeply nested object graph and you get a StackOverflowException that takes the whole process down, and in modern .NET you can't even catch it. The catch? The fix landed in the paid versions (15.1.1 / 16.1.1).

So if you're on the free track, you're sitting on a known DoS with no free upgrade path. At work, that meant one thing: we had to migrate AutoMapper out of every project.

The problem: nobody had fresh numbers

There's no shortage of candidates: Mapperly, Mapster, TinyMapper, AgileMapper, or just writing the mapping by hand. The hard part wasn't finding options, it was figuring out which one to actually trust in production, and that's a call you want to make with data, not vibes.

I went looking for benchmarks and hit a wall:

  • Most comparisons were years old.
  • None were run against .NET 10.
  • Library versions were stale, so the conclusions no longer applied.
  • Everyone benchmarked slightly different scenarios, so you couldn't compare apples to apples.

Performance characteristics change with every runtime and every library release. A benchmark from 2021 tells you almost nothing about Mapperly 4 on .NET 10. I didn't want a snapshot. I wanted something that stays true over time.

So I built it.

The solution: benchmarks that never go stale

I built a BenchmarkDotNet runner that measures the major .NET mappers across consistent scenarios, plus a small landing page to read the results.

What makes it different from the "I benchmarked these one afternoon in 2022" posts:

  • It runs every hour on a dedicated VPS, automatically.
  • Library versions auto-update to the latest release, so the numbers always reflect what you'd actually install today.
  • Results are averaged over the last 3 months to smooth out noise and show long-term trends, not a single lucky run.
  • No raw JSON, no markdown walls, just clean, interactive charts.

What I measure

Four scenarios that cover the cases you hit in real code:

Scenario What it stresses
SimpleFlat Flat POCO to POCO, identical names
NestedObject Object graphs with nested types
Collection Mapping lists/arrays of objects
NameDifference Source/target with mismatched property names

For each one: mean execution time (μs) and memory allocated per operation (bytes).

Why I'm not posting the numbers here

This is the part where a normal post drops a table of results and tells you which library "wins."

I'm not going to do that, on purpose.

If I freeze the numbers into this article, it becomes exactly the thing that sent me down this road in the first place: an outdated benchmark. In six months the versions will have moved, .NET will have a new release, and a screenshot from today would be quietly lying to whoever finds this post later.

So instead of conclusions, here's the live data, always current:

benchmarks.jagoba.dev/dotnet-mappers

Open it, pick the scenario that matches your workload, and read today's results instead of mine from whenever you happen to read this.

Try it / steal it

If AutoMapper's licensing change or the CVE has you reconsidering your mapping layer, I hope this saves you the afternoon of benchmarking I had to do. And if you spot a scenario worth adding, the runner is open source, PRs welcome.

What did you migrate to? I'm curious whether others landed on Mapperly, Mapster, or just went manual.


Sources: AutoMapper commercial editions announcement · GHSA-rvv3-g6hj-g44x / CVE-2026-32933