メインコンテンツまでスキップ

C# Extend アプリのメモリ不足 (OOM) エラーのトラブルシューティング

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

.NET C# Extendアプリはガベージコレクターを使用してシステムメモリを自動的に管理します。ただし、以下の理由によりメモリの問題が発生する可能性があります:

  • 大きなオブジェクトへの参照を必要以上に長く保持している
  • マネージドメモリリーク
  • アンマネージドメモリリーク
  • 全般的に高いメモリ使用量

この記事では、.NET C# Extendアプリのローカル開発において、効率的なメモリ管理を行い、メモリ不足(OOM)の問題を軽減するためのベストプラクティスと推奨ツールを紹介します。

ベストプラクティス

  1. 適切なデータ型を使用してください。メモリ使用量を削減するために、可能な限り Span<T> を使用してください。

  2. 文字列は不変であるため、文字列の連結は避けてください。代わりに StringBuilder を使用してください。

  3. 他のソースから取得するデータ量を制限してください。

  4. アンマネージドコードの使用は避けてください。.NET C# Extend アプリのガベージコレクターはネイティブリソースをクリーンアップしません。アンマネージドコードの不適切な実装は、高いメモリ使用量につながる可能性があります。

推奨ツール

CPU とメモリの使用量を管理するために、以下のツールの使用を推奨します:

Visual Studio

Visual Studio は、.NET アプリケーションのメモリ問題を分析および診断するための優れたツールを提供しています。

Visual Studio diagnostic tools

  1. Visual Studio を使用して .NET C# アプリケーションをデバッグします。
  2. 右側のサイドバーで Diagnostic Tools を選択してピン留めします。プロセスの合計メモリがリアルタイムで表示されます。
  3. Memory Usage に移動してスナップショットを取得し、アプリのメモリ使用量を分析します。
  4. CPU Usage に移動して CPU プロファイリング情報を表示します。
  5. 「Enable CPU profiling to see a breakdown of CPU usage by function.」をクリックします。
  6. ブレークポイントを設定するか、break all を使用して CPU プロファイルを確認します。

詳細については、Visual Studio の公式ドキュメントを参照してください。

または、Jetbrains Dotmemory を使用して .NET アプリケーションの CPU とメモリのプロファイリングを行うこともできます。詳細については、Jetbrains の公式ドキュメントを参照してください。

Dotnet CLI

Dotnet ツールを使用すると、Linux でのメモリリークのデバッグ高い CPU 使用率のトレースが可能です。