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

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 使用率のトレースを行うことができます。