問題タブ [out-of-memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
18519 参照

visual-studio - Visual Studio エラー: "GenerateResource" タスクが予期せず失敗しました

19 個のプロジェクトで VS 2008 ソリューションを構築すると、次のようになることがあります。

通常、VS が約 4 時間実行された後に発生します。VS を適切にコンパイルする唯一の方法は、VS を閉じてから再起動することです。

私は3GBのRAMを搭載したマシンを使用しています。TaskManager は、devenv.exe ワーキング セットが 578060K であることを示しており、マシンのメモリ割り当て全体は 1.78GB です。リソースを生成するのに十分な RAM が必要です。

0 投票する
30 に答える
1733591 参照

java - 「java.lang.OutOfMemoryError: Java heap space」エラーに対処するには?

Java 5でクライアント側のSwingアプリケーション (グラフィカル フォント デザイナー) を作成しています。最近、メモリ使用量を控えめにしていないため、エラーが発生しています。ユーザーは無制限の数のファイルを開くことができ、プログラムは開いたオブジェクトをメモリに保持します。簡単な調査の後、私は 5.0 Java Virtual Machine の Ergonomicsや、Windows マシンで JVM のデフォルトの最大ヒープ サイズが.java.lang.OutOfMemoryError: Java heap space64MB

この状況を考えると、この制約にどのように対処すればよいですか?

Java のコマンド ラインオプションを使用して最大ヒープ サイズを増やすこともできますが、それには使用可能な RAM を調べて、起動プログラムまたはスクリプトを作成する必要があります。さらに、有限の最大値まで増やしても、最終的に問題が解決されるわけではありません。

オブジェクトをファイル システムに頻繁に保持するようにコードの一部を書き直して (データベースの使用も同じことです)、メモリを解放することができます。うまくいくかもしれませんが、おそらく大変な作業でもあります。

上記のアイデアの詳細や、ヒープサイズを動的に拡張する自動仮想メモリなどの代替案を教えていただければ、それは素晴らしいことです。

0 投票する
33 に答える
1049843 参照

exception - 「java.lang.OutOfMemoryError: PermGen space」エラーの処理

最近、Web アプリケーションで次のエラーに遭遇しました。

java.lang.OutOfMemoryError: PermGen スペース

これは、Tomcat 6 および JDK 1.6 で実行される典型的な Hibernate/JPA + IceFaces/JSF アプリケーションです。どうやらこれは、アプリケーションを数回再デプロイした後に発生する可能性があります。

何が原因で、それを避けるために何ができるでしょうか? 問題を解決するにはどうすればよいですか?

0 投票する
8 に答える
16738 参照

java - Java で自分のヒープの内容を確認するにはどうすればよいですか?

開発中の Java アプリケーションでメモリ「リーク」が発生しました。JUnit テスト スイートを実行すると、ランダムにメモリ不足の例外が発生します (java.lang.OutOfMemoryError)。

Javaアプリケーションのヒープを調べて、ヒープ全体を使い果たしているものを確認して、ガベージコレクションできるはずのオブジェクトへの参照を保持しているものを特定するには、どのツールを使用できますか。

0 投票する
5 に答える
5579 参照

sql - 大規模な SQL SERVER バッチ挿入を処理するにはどうすればよいですか?

移行プロジェクトの一環として、一連のクエリを実行しようとしています。生成されるスクリプトは、レガシー データベースを分析し、古いエンティティのそれぞれを適切な新しいレコードにマップするスクリプトを生成するツールから生成されます。スクリプトは小規模なエンティティに対しては適切に実行されますが、一部のエンティティには数十万のレコードがあり、約 80 MB のスクリプト ファイルが生成されます。

これらのスクリプトを実行する最良の方法は何ですか?

より大きなスクリプトを扱うプロンプトからの SQLCMD はありますか?

スクリプトをさらに小さなスクリプトに分割することもできますが、移行を実行するために何百ものスクリプトを実行する必要はありません。

0 投票する
4 に答える
6891 参照

java - Java Runtime.exec() がメモリに関して安全なのは、どの Linux カーネル/libc バージョンからですか?

作業中のターゲット プラットフォームの 1 つは、Linux を実行するリソースに制約のあるミニ サーバーです (カーネル 2.6.13、古い Fedora Core に基づくカスタム ディストリビューション)。アプリケーションは Java (Sun JDK 1.6_04) で書かれています。Linux OOM キラーは、メモリ使用量が 160MB を超えるとプロセスを強制終了するように構成されています。負荷が高い場合でも、アプリケーションが 120MB を超えることはなく、アクティブな他のネイティブ プロセスと合わせて、OOM の制限内に収まっています。

しかし、Java から外部プロセスを実行する標準的な方法である Java Runtime.getRuntime().exec() メソッドは、Linux で特に不幸な実装をしており、生成された子プロセスが (一時的に) 同じ量のアドレス空間がコピーされるため、親プロセスとしてのメモリ。最終的な結果として、Runtime.getRuntime().exec() を実行するとすぐに、アプリケーションが OOM キラーによって強制終了されます。

現在、別のネイティブ プログラムですべての外部コマンドの実行を行い、ソケットを介してそのプログラムと通信することで、この問題を回避しています。これは最適とは言えません。

この問題についてオンラインで投稿した後、Linux の「新しい」バージョンでは、コピー オン ライトを使用して posix fork() メソッドを実装しているため、これは発生しないはずであるというフィードバックを受け取りました。おそらく、必要なページのみをコピーすることを意味します。アドレス空間全体をすぐに変更するのではなく、必要なときに変更します。

私の質問は次のとおりです。

  • これは本当ですか?
  • これはカーネル、libc 実装、または完全に別の場所にあるものですか?
  • fork() のコピー オン ライトは、どのバージョンのカーネル/libc/whatever から利用できますか?
0 投票する
15 に答える
748085 参照

java - StackOverflowErrorとは何ですか?

とは何ですかStackOverflowError、何が原因で、どのように対処すればよいですか?

0 投票する
10 に答える
22964 参照

java - 50,000 個のオブジェクトを HashMap に挿入すると OutOfMemoryError が発生するのはなぜですか?

約 50,000 個のオブジェクト (したがって 50,000 個のキー) を に挿入しようとしていjava.util.HashMap<java.awt.Point, Segment>ます。ただし、OutOfMemory 例外が発生し続けます。(Segment私自身のクラス - 非常に軽量 - 1 つのStringフィールドと 3 つintのフィールド)。

仮想メモリ用の空き RAM と HD スペースの両方で、マシン上で利用可能なメモリが十分にあることがわかっているので、これは非常にばかげているように思えます。

Javaがいくつかの厳しいメモリ要件で実行されている可能性はありますか? これらを増やすことはできますか?

に奇妙な制限がありHashMapますか?自分で実装する必要がありますか?他に注目すべきクラスはありますか?

(2GB RAM の Intel マシンで OS X 10.5 の下で Java 5 を実行しています。)

0 投票する
4 に答える
1918 参照

asp.net - GAC は ASP.NET/IIS6.0 System.OutOfMemoryException を修正しますか?

IIS 6.0、Windows Server 2003 ボックスに同じアプリケーション プールの下にインストールされたアプリケーションのインスタンスが多数あります。それらは同じアセンブリの多くを共有し、単一のアプリケーションに参加することはできません。

最近、アプリケーションの新しいインスタンスを追加し、ASP.NET 2.0 アプリケーションをロードしようとしたときに System.OutOfMemoryException を取得しました。

GAC を使用して一般的なアセンブリを格納すると、このエラーは修正されますか? それとも、異なるアプリケーション プール間にサイトを配置することによってのみ修正できますか?

0 投票する
8 に答える
21597 参照

c# - 文字列連結用の StringBuilder が OutOfMemoryException をスローする

ほとんどの場合、上記のベスト プラクティスに従う傾向があります。

String vs StringBuilderをご覧ください

ただし、使用可能なメモリが十分にある場合でも、 StringBuilder は OutOfMemoryException をスローする可能性があります。「連続したメモリブロック」が必要なため、OOM 例外がスローされます。

参照用のいくつかのリンク StringBuilder OutOfMemoryException

他にもたくさんあります.....

この問題に直面した、または認識している人は何人で、それを解決するために何をしましたか?

不足しているものはありますか?

PS:これは知りませんでした。

私は質問を言い換えました。

*** 同じことが手動連結でも機能しました (これを確認して SO を更新します)。もう 1 つ気になったのは、システムに十分なメモリがあることです。これが、この問題に直面した人がいるかどうか、またはコードに大幅な問題があるかどうかを確認するために、ここでこの質問を提起した理由です。