Start Debugging

Tag: performance

79 Beiträge · Seite1von8

Lazy<T> vs LazyInitializer.EnsureInitialized vs Double-Checked Locking in C#
Verwenden Sie standardmäßig Lazy<T>: Es führt die Factory genau einmal aus, speichert Ausnahmen zwischen, und seine Lesezugriffe sind nach der Initialisierung zu billig, um messbar zu sein. Nutzen Sie LazyInitializer.EnsureInitialized, wenn Sie viele Felder oder Array-Elemente lazy befüllen und sich ein zusätzliches Objekt pro Wert nicht leisten können. Handgeschriebenes Double-Checked Locking lohnt sich unter .NET 10 fast nie.
Was ist Transparent Struct Layout, und warum ändert ein Wrapper-Struct mit einem einzigen Feld die Aufrufkonvention in .NET?
Ein transparentes Struct wird von der ABI exakt wie sein einziges Feld behandelt. .NET 11 bietet diese Garantie nicht: Ein Struct, das ein double kapselt, wird unter Windows x64 in RCX übergeben, unter Linux und macOS aber in XMM0. Hier sind das Disassembly des .NET-11-JIT für drei ABIs, die daraus entstehenden P/Invoke-Fehler und wie Sie Wrapper-Typen schreiben, die an jeder Grenze sicher sind.
EF.Parameter vs. EF.Constant in EF Core 11 Abfragen
EF.Constant schreibt einen erfassten Wert als SQL-Literal in die Abfrage, EF.Parameter macht aus einem Literal einen SQL-Parameter. Belassen Sie die Standardeinstellungen von EF Core, nutzen Sie EF.Parameter, damit dynamisch gebaute Expression Trees nicht bei jedem Aufruf neu kompiliert werden, und EF.Constant nur für Werte mit wenigen Ausprägungen, deren Daten so schief verteilt sind, dass jeder Wert einen eigenen Plan braucht.
2026-09-27 dartfluttervs-code
So beschleunigen Sie einen langsamen Dart-Analyseserver in VS Code für ein großes Flutter-Monorepo
Ein Monorepo mit Dutzenden pubspec.yaml-Dateien bringt den Dart-Analyseserver dazu, pro Paket einen eigenen Analysekontext aufzubauen, und genau dort landen der Speicher und der minutenlange Start. Stellen Sie auf einen Pub-Workspace um, schließen Sie generierten Code in der analysis_options.yaml aus, entfernen Sie Legacy-Analyzer-Plugins und belegen Sie das Ergebnis mit der Insights-Seite. Gemessen unter Dart 3.12.2: 2,3-mal weniger Spitzenspeicher und halbierte Zeit für die Kaltanalyse.
Weiter