2026-07-27 csharpdotnetdotnet-11 dotnet-gcdump と dotnet-dump でマネージドメモリリークを診断する方法 .NET 11 でマネージドメモリリークを見つけるための完全な手順です。dotnet-counters で増加を確認し、gcdump を 2 回取得して差分を見て、その後ダンプを収集して dotnet-dump analyze の dumpheap、gcroot、objsize で参照を保持しているものを突き止めます。
2026-06-20 csharpdotnetperformance C# の Span<T> とは何か、そしてどんなときに実際にコードを速くするのか? Span<T> はスタック上にのみ存在する ref struct で、すでに自分が所有しているメモリを指すため、裏付けとなるアロケーションを持ちません。コードが速くなるのは正確に 3 つの状況だけです: ヒープのバッファを stackalloc に置き換える、コピーせずにスライスする、JIT が境界チェックを除去するタイトなループ。それ以外の場所では何も変わらず、await をまたぐとコンパイルできません。
2026-06-01 flutterdartmemory Flutter でコントローラーを dispose してメモリリークを防ぐ方法 AnimationController、TextEditingController、ScrollController は、dispose するまで Dart の GC が回収できないリソースを保持します。正しいパターン、順序のルール、公開前にリークを検出する方法を解説します。
2026-05-25 comparisoncsharpdotnet C# における List<T> vs Span<T> vs ReadOnlySpan<T>: どれを選ぶべきか List<T> は伸長するヒープ上のコレクションです。Span<T> と ReadOnlySpan<T> は、すでに所有しているメモリに対するスタック専用のビューです。保存・async からの返却・伸長が必要なものには List<T> を、同期メソッド内での変更可能でアロケーションのないビューには Span<T> を、文字列・u8 リテラル・スライスに対する読み取り専用の解析には ReadOnlySpan<T> を使います。
2026-05-04 csharpdotnetperformance C# で T[] を ReadOnlyMemory<T> に変換する方法 (暗黙の演算子と明示的なコンストラクター) .NET 11 で T[] を ReadOnlyMemory<T> にラップする 3 つの方法。暗黙の変換、明示的なコンストラクター、AsMemory()。それぞれが正解となる場面を解説します。