問題タブ [heap-size]
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.
java - GC ヒープ サイズとプログラム メモリのオーバーヘッド
アプリケーションで何が起こっているのかを理解しようとしています。
問題:
GC 呼び出しは、未使用のヒープ サイズを必要以上に削減しませんが、シリアル GC (または UseParNewGC) と積極的なヒープ比率を使用しているため、そうすべきです。
使用中のプログラムのメモリは常に、現在使用されているヒープと未使用のヒープよりもはるかに大きく、私の意見では、他の JVM メモリ + ヒープが含まれていても大きすぎます。
使用するコマンド ライン:
UseParNewGC で試してみたが、同じ結果
システム: Win7 SP1 4GB RAM + 4GB スワップファイル 2.99GHZ Java 1.7 + JDK 1.7
物事をより明確にするために写真を見てください: http://i.stack.imgur.com/i3sxw.jpg
java - Java アプレットのヒープ サイズを増やす
プログラムの 1 つをスタンドアロン Java アプリケーションから Java アプレットに移植しました。アプリケーションは大きな画像ファイルを処理するため、より多くのヒープ領域が必要になるため、それらをメモリにロードします。画像は、JOGL を使用した openGL ウィンドウでテクスチャ データとして使用されます。
アプリケーションは、Eclipse 内で (アプレットとしてもスタンドアロンとしても) 正常に動作し、スタンドアロン アプリケーションを実行可能 jar としてエクスポートすると、正常に動作します。これをさまざまなシステムでテストしました (Windows XP 32 で 4 GB RAM、Windows XP 64 で 12 GB RAM、および Windows 7 64 ビットで 4 GB および 8 GB RAM)。
プログラムのアプレット バージョンをエクスポートすると、問題が発生します。jar に署名し、ブラウザ (テスト済みの Firefox および IE) で実行しようとした後、上記の 64 ビット マシンではアプリケーションが常に OutOfMemory 例外でクラッシュします。
Windows XP 32ビットマシンでは、少しいじった後に機能しましたが、さまざまなソリューションを試すだけで、以前の試行でクラッシュにつながったとしても、そのうちの1つが機能したため、理由はわかりません。
ヒープスペースを増やそうとした4つの方法があります
私が試したhtmlファイルで:
うまくいきませんでした。
次に、-Xmx1600M 引数を使用して、Java メニュー ([スタート] -> [コントロール パネル] -> [Java] タブ -> [Java ランタイム環境の設定]) からヒープを直接増やしてみました。この帽子もインパクトなし。
その後、Jogamp の担当者から提供された jnlp ファイルを使用しました。そこに追加しました
リソースタグ内。これも最初は効果がありませんでした。
最後に追加しました
リソースタグ内で、何とか数回試行した後、4つの異なるソリューションを一周し、機能したアプレットキャッシュをクリアしました(ただし、32ビットWinXPマシンのみ)。
しかし、私は 64 ビット マシンでアプレットを実行しようとしても成功しませんでした。いくつかの調査の結果、これらの 4 つの方法が唯一のものであるように思われるため、今何をすべきかまったくわかりません。
事前にご協力いただきありがとうございます。
2 つの jnlp ファイルと、アプレットを起動する html ファイルを追加します。
HTML:
AppletTest.jnlp:
JOGL.jnlp:
[編集:] 問題の原因を突き止めたようです (ただし、まだ解決策はありません)。特定のブラウザの 32 ビット バージョンでアプレットを起動すると、ブラウザは jnlp ファイル内の jvm 設定に対応できない 32 ビット jre を起動します。
32 ビット マシンで 32 ビット jvm を呼び出すと問題なく動作するため、これは非常に奇妙です。
64 ビット ブラウザ (IE 64 ビット バージョンや Nightly Firefox 64 ビルドなど) でアプレットを起動すると、「正しい」jvm が呼び出され、正常に実行されます。
したがって、本当の問題は、32ビットブラウザから64ビットjvmを起動する方法だと思います(これは可能ですか?)。
ただし、エラーを再現するための小さなテスト プログラムを作成しました。このプログラムは、大きな画像を配列に格納します。32 ビット ブラウザでは、OutOfMemoryException が発生するまで、2 ~ 3 個の画像をロードできるはずです。プログラムをテストしたい場合は、jar を作成して署名し、SConfigTest.jar という名前を付ける必要があります。
android - Samsung Galaxy S3 でのみ「OutOfMemory」例外が発生する
Samsung Galaxy S3 は、私のアプリではほぼ瞬時に 32 MB のヒープサイズを使用します。他のほとんどの Android デバイスでは +- 5 MB から始まります (これは logcat で見られ、必要に応じて 2 つの異なるデバイスからスクリーンショットを送信できます)。これが私のアプリが「OutOfMemory」例外でクラッシュする理由だと思います.Galaxy s3でのみ例外が発生し、Galaxy Y DuosとPocketで完全に動作します.
なぜこれが起こっているのかについてのヘルプ/アドバイスは大歓迎です。
tomcat - catalina.bat ファイルのヒープ サイズを増やす最良の方法
Windows XPにTomcat 6サーバーがあり、コンソール、つまりstartup.batを使用してTomcatを起動します。
AFAIKcatalina.bat
ファイルはWindows用なので、メモリ管理のためにbatファイルを変更しています.Tomcat構成ウィンドウがありません。
今、ヒープサイズを増やしたいので、私の質問は、既存JAVA_OPTS
の catalina.bat ファイルを拡張する必要があるかどうかです。
または、catalina.bat ファイルに新しい環境変数を作成する必要があります。
そして、これは正しい方法ですか?
ガイドしてください。
Probe で現在のヒープ サイズを確認できますが、既存のパーマ サイズを確認できません。パーマ サイズのデフォルト値は何ですか?
編集:
次のパラメータは役に立ちますか?
android - Android VM で xx バイトを割り当てられない
私はアンドロイドゲームに取り組んでいます。背景に 3 つの画像を使用しようとすると、問題が発生します。画像は 1280x720px で 100kb です。画像は実際にはそれほど大きくないので、なぜメモリの問題が発生するのか少し混乱しています。
注: 画面の解像度は 800x400 であるため、Android 開発者で推奨されているように、画像を 2 倍にサイズ変更することはできません 注: 私は HTC 欲望の電話を使用しています (ここでクラッシュが発生します)。それは正常に動作します。
DDMS でメモリを分析したところ、ヒープのサイズが 3.5 MB しかないことがわかりました。rt.MaxMemory() をチェックすると、アプリごとに約 25 MB のスペースがあると表示されます。
私の頭に浮かぶのは、ヒープがより大きな写真/アプリに対応するのに十分な速さで「更新」されていないため、非常に小さいにもかかわらず、画像をロードする前にクラッシュすることです. ヒープサイズを手動で設定する方法はありますか、または少なくとも拡大するように指示する方法はありますか?
画像をロードするコードは次のとおりです。
LogCat からの正確なエラーは次のとおりです。
編集:ビットマップが「生の」サイズの画像を使用し、圧縮されていないことは理にかなっていると言いました。そして、いくつかの調査の後、Android 2.2および2.3ではビットマップがヒープに保存されていないため、画像がロードされた後にヒープが増加しないようです。
もう 1 つ質問があります。この 3 枚の画像を背景に使用します。垂直方向に少しサイズを変更しますが、水平方向にはまだ必要です。したがって、画像はまだ約 100x720px です。3 つの画像が必要な理由は、それらを別々に描画してレイヤー効果を得ることができるためです (2 つの画像の間に何かを描画できます)。使用するメモリをできるだけ少なくして望ましい効果を得るためにこれを実装する最良の方法は何でしょうか?
背景: 中: 前景
注: これは静的な背景にすぎません。アニメーションは背景と背景の間で発生します。
java - -Xmxの大きな値は、ガベージコレクションを延期しますか?
32GBの物理メモリと32GBの仮想メモリを備えたLinuxRedhatで多くのJVMを実行しています。これらのJVMは、Xmxの合計値が32GBを超えるように構成されており、Linuxが仮想メモリを使用している可能性があります。
私の質問は、必要なヒープサイズよりも多くのXmxを指定すると、ガベージコレクションが遅延し、その結果、必要以上のヒープサイズが割り当てられるということです。そのため、OSは仮想メモリからメモリを割り当て、パフォーマンスが低下します。
java - 結果セットのサイズからリストにデータを入力しようとすると、アクションを約4回再度実行すると、約12000行になり、jvmがヒープメモリを使い果たします。
tableList型の配列リストに約12000レコードのデータベースを入力し、struts iteratorタグを使用してjspページに入力しようとしていますが、このアクションを何度も実行すると、jvmがメモリから不足し、私が見るようにページからこのアクションを呼び出すたびに、ヒープサイズが減少し続けます。このアクションクラスの新しいインスタンスが作成されるたびに、リストスペースの割り当てが解除されないと思います。この問題の解決策を提案します。また、tableList.clear( ); クラスのコンストラクターで
android - Android バージョンの最小ヒープ サイズはありますか?
Android のヒープ サイズについては多くの記事で取り上げられていますが、これまでのところ、最大ヒープ サイズの唯一の共通点は少なくとも 16 MB であることがわかりましたが、API 3 以降はこれが限界でした。より多くのメモリを使用するには、人々は、NDK または「通常の」Android 開発を超えたものを使用することを提案します。
デバイスからヒープ サイズを大きくする必要がある Android バージョンはありますか?
マニフェスト内の大きなヒープ (API 11 - ハニカムから) のフラグに関する要件もありますか、それともデバイスがそれを無視するかもしれないという漠然とした要求ですか?
Android のハードウェアは長年にわたって大幅に改善されてきましたが、デバイスに 1GB を超える RAM が搭載されたとしても、依然としてメモリを安価にする必要があります。そして、OS に特定の量のヒープ サイズを取得して、これ以上使用しないことを約束するように要求できないのは奇妙です。
java - Java-Xmxコマンドで期待したほどのメモリが得られない
java-Xmx60g
コマンドを使用して次のコードを実行しています。
各アレイは約8.5GB、合計17GBである必要があります。マシンの合計は64GBで、 63GBが「無料」です。DONE DECLARING RIVER HANDS 1
最初の配列の宣言が終了したことを示す、を出力します。
しかし、スレッド "main" java.lang.OutOfMemoryErrorで例外が発生します:2番目の配列の宣言中にJavaヒープスペース。アレイは17GBしか使用しないのに対し、は60GB-Xmx60g
を割り当てる必要があると理解しているため、混乱しています。
よろしくお願いします!
java - Eclipse Android のエラー「Java ヒープ サイズ」?
5 ~ 10 分間作業した後でグラフィカル レイアウト エディタを使用すると、「Java ヒープ サイズ」というエラーが表示されます。eclipse.ini でサイズを大きくしようとしました: -Xms512m -Xmx1024m しかし、それは役に立ちません。誰がこの問題に遭遇したか、またどのように解決したか教えてください。