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

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

Last updated on July 15, 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.」(関数ごとの CPU 使用率の内訳を表示するには CPU プロファイリングを有効にします)をクリックします。
  6. ブレークポイントを設定するか、break all を使用して CPU プロファイルを確認します。

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

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

Dotnet CLI​

Dotnet ツールを使用すると、Linux 上でのメモリリークのデバッグや高い CPU 使用率のトレースを行うことができます。