Tags

#performance
performance

79stories
1 d agolatest
.NET MAUI
Smoother list scrolling
HBHabr C# (ru) ol1vvvka Oct 26

Why .NET MAUI lists stutter on a weak tablet and what actually helped

While moving a field sales app from Xamarin.Forms to .NET MAUI, the author found catalog scrolling janky on older Android tablets even though the business logic was fast. She measured frame times with dumpsys gfxinfo and cut the worst stutter through list virtualization, data preparation, and simpler row templates. The result is a concrete, number-backed guide for anyone tuning MAUI collection views.

.NET regresyon
Row-level diffs
DVDEV Community: #csharp Youssef Bouha Oct 26

Comparing two million-object lists for regression testing with Xero.DataComparer

Xero.DataComparer is a small, dependency-free .NET library for non-regression testing of pricing and risk engines. Instead of a boolean verdict, it reports which rows differ, on which properties, and which rows are missing on either side. The author says it compares two lists of one million objects in about 0.7 seconds, and explains the design choices behind that speed.

BenchmarkDotNet
Measure before optimizing
DVDEV Community: #csharp Henrique Mauri Oct 25

Measuring .NET performance with AI help using BenchmarkDotNet

The author optimizes a .NET reporting method step by step with BenchmarkDotNet, measuring each change separately. The final version drops from about 1.55 s to 11.9 ms and allocations fall from 33.1 MB to 0.23 MB. It is a useful case for anyone who wants to check AI-proposed optimizations with benchmarks and output comparisons before merging them.

FusionCache 2.9
Two-layer product cache
DVDEV Community: #dotnet nikosst Oct 25

Two-level caching in .NET with FusionCache and Redis

This guide shows how to combine FusionCache's in-process L1 memory with a shared Redis L2 layer in a product catalog API. The author keeps Clean Architecture boundaries intact and focuses on correct cache behavior rather than raw speed numbers. It is a practical starting point for developers who run several instances and need to plan freshness and invalidation.

.NET 10
Custom sort vs LINQ
CCC# Corner Željko Perić Oct 25

Custom Array Sorting vs LINQ: BenchmarkDotNet Results for 2D and Jagged Arrays

Željko Perić benchmarks his custom multi-column sort extensions for 2D and jagged arrays against the standard LINQ OrderBy/ThenBy pipeline using BenchmarkDotNet. The results show how memory layout and sorting algorithm change speed and allocations on datasets up to one million rows. It is a practical reference for developers who care about GC pressure in data-heavy code.

Azure SQL Hyperscale
Split the database in four
SQAzure SQL Blog Anna Hoffman Oct 25

Inside Azure SQL Hyperscale: how the Socrates paper split the database

A walkthrough of the 2019 Socrates paper behind Azure SQL Database Hyperscale. The design splits compute, transaction log, page servers and storage into separate tiers, which is why backups, restores and adding replicas no longer scale with database size. Developers running or evaluating Hyperscale get a clear view of the architecture behind it.

EF Core 10
Store documents in jsonb
DVDEV Community: #dotnet Mehdi Mohseni Oct 24

PostgreSQL jsonb with EF Core 10: Mapping, Indexing and Querying Document Columns

EF Core 10 with Npgsql 10 maps a .NET complex type to a PostgreSQL jsonb column using ToJson(). The article shows how LINQ property access becomes ->> SQL, which index types serve which queries, and when a jsonb column beats a separate EAV table. It is a practical guide for models with many sparse optional fields.

ASP.NET Core
Revoke tokens instantly
MJMilan Jovanović [email protected] (Milan Jovanović) Oct 24

How to Revoke a JWT Before It Expires in ASP.NET Core

ASP.NET Core validates a JWT by its signature and expiry, so a stolen token keeps working after a password change. The article walks through two fixes: short-lived access tokens paired with revocable refresh tokens, then a token_version check for immediate revocation. Every .NET developer running JWT-based APIs should know where the gap is and what each fix costs.

Wolverine 6.52.0
Named connections
WOWolverine releases jeremydmiller Oct 24

Wolverine 6.52.0 adds named connections and timer agents

Wolverine 6.52.0 is a feature release adding connection-string-name registration for every transport and message store, timer agents for recurring schedules under 15 minutes, and groundwork for Wolverine 7.0. It also changes behavior: frequent schedules now run on timer agents, and unmappable outgoing envelopes are dead-lettered. Developers running Wolverine messaging should review these changes before upgrading.

MySQL vs Nebula
Why graph queries stalled
DVDEV Community: #dotnet Mehdi Mohseni Oct 24

MySQL Recursive CTE vs C# BFS vs NebulaGraph at 500 Million Rows

A team moving a relationship-heavy system from MySQL to graph databases reports that a recursive CTE collapsed at around 500 million rows. The author built a reproducible benchmark comparing the CTE, a C# breadth-first search on the same MySQL tables, and NebulaGraph. The results suggest the CTE's design, not the relational engine, caused most of the delay.

Feedback

Found a bug or have an idea? Your message lands straight in my inbox.

Type of message