タグ付けされた質問 「out-of-memory」

プログラムが満足できないメモリを要求したときにスローされるエラーまたは例外。

22
Android Studio-割り当てられたヒープサイズを増やす方法
私は今3か月間Android Studioを使用していますが、私が開始したアプリの1つはかなり大きくなっています。プログラムの右下に示されているメモリ使用量は、割り当てられたヒープの最大値が494Mであることを示しています。 XMLファイルの変更を開始すると、メモリ使用量がすぐにその上限に達し、IDEは次のようなメモリ不足エラーでクラッシュします。 これを使用してヒープサイズを大きくしようとしましたが、これまでのところ効果はありません。 ヒープサイズを増やす方法に関する数十の記事やその他の質問を確認しましたが、どれもうまくいきません。VMOPTIONSやIDEの設定で何をしても、ヒープサイズは増えません。VMOPTIONSの正しいファイルを編集していると思います。意図的に無効なコマンドを指定すると、Android Studioはそれについて文句を言い、起動しません。 私はWindows 7-64ビットを使用していて、16GBのRAMを持っています。他の誰かがAndroid Studioでこの問題を抱えていましたか?そして、あなたはそれを修正することができましたか?

2
Androidでビットマップのサイズを変更する最もメモリ効率の良い方法?
サーバーからデバイスに画像が送信される画像集約型のソーシャルアプリを作成しています。デバイスの画面解像度が小さい場合、デバイスのビットマップのサイズを変更して、目的の表示サイズに合わせる必要があります。 問題は、createScaledBitmapを使用すると、サムネイル画像の大群のサイズを変更した後、多くのメモリ不足エラーが発生することです。 Androidでビットマップのサイズを変更する最もメモリ効率の良い方法は何ですか?

14
java.lang.OutOfMemoryError?
のドキュメントはjava.lang.Error言う: ErrorはThrowableのサブクラスであり、妥当なアプリケーションがキャッチしようとしてはならない重大な問題を示します しかしjava.lang.Error、のサブクラスとjava.lang.Throwable同様に、このタイプのThrowableをキャッチできます。 なぜこの種の例外をキャッチするのが良くないのか理解しています。私が理解している限り、キャッチすることにした場合、キャッチハンドラはそれ自体でメモリを割り当てるべきではありません。それ以外の場合OutOfMemoryErrorは再びスローされます。 だから、私の質問は: 捕まえるのjava.lang.OutOfMemoryErrorが良いかもしれない現実のシナリオはありますか? キャッチすることにした場合java.lang.OutOfMemoryError、キャッチハンドラがそれ自体でメモリを割り当てないようにするにはどうすればよいですか(ツールやベストプラクティス)。

11
java.lang.OutOfMemoryError:Javaヒープスペース
マルチスレッドプログラムの実行時に次のエラーが発生する java.lang.OutOfMemoryError: Java heap space 上記のエラーは、いずれかのスレッドで発生しました。 私の知る限りでは、ヒープ領域はインスタンス変数のみによって占有されています。これが正しい場合、オブジェクトの作成時にインスタンス変数用のスペースが割り当てられるため、しばらくの間正常に実行した後にこのエラーが発生した理由。 ヒープ領域を増やす方法はありますか? ヒープ領域を少なくするために、プログラムにどのような変更を加える必要がありますか?

14
まだ十分な空きメモリがあるときに「System.OutOfMemoryException」がスローされました
これは私のコードです: int size = 100000000; double sizeInMegabytes = (size * 8.0) / 1024.0 / 1024.0; //762 mb double[] randomNumbers = new double[size]; 例外:タイプ「System.OutOfMemoryException」の例外がスローされました。 このマシンに4 GBのメモリを搭載していますが、この実行を開始すると2.5 GBは無料です。PCに100 000000の762 mbの乱数を処理するのに十分なスペースが明らかにあります。使用可能なメモリを考慮して、できるだけ多くの乱数を保存する必要があります。私が生産に行くとき、箱に12GBがあるでしょう、そしてそれを利用したいと思います。 CLRは、最初からデフォルトの最大メモリに制限していますか?どうすればもっとリクエストできますか? 更新 これを小さなチャンクに分割し、メモリ要件を徐々に追加すると、問題がメモリの断片化に起因する場合に役立つと思いましたが、blockSizeの調整に関係なく、ArrayListの合計サイズが256 MBを超えることはありません。 private static IRandomGenerator rnd = new MersenneTwister(); private static IDistribution dist = new DiscreteNormalDistribution(1048576); private static List<double> ndRandomNumbers …

6
.NETメモリ不足例外-1.3GBを使用しましたが、16GBがインストールされています
アプリケーションのメモリ使用量が約1.3GBを超えると、c#アプリケーションでメモリ不足例外が発生します。 3 GBのメモリを搭載した32ビットマシンでも同じ問題が発生しましたが、当時は理にかなっていますが、ハードウェアを、ハイエンドのマザーボードとRAMを搭載した16 GBのメモリを搭載した64ビットマシンにアップグレードしましたが、メモリ不足です。 1.3GB後も例外が発生します! 2GBを超える単一のオブジェクトはなく、1.3はいずれにしても2GBを下回るので、単一のオブジェクトに組み込まれているMS 2GBの制限が問題になることはないと思います... アプリが特定のメモリ使用量のしきい値に達したときに、ある種のWindows kill-switchがあるようです...それから、これをレジストリに構成する方法があるはずですか? どんな助けでも大歓迎です!
91 c#  out-of-memory 

13
Mavenのメモリ不足ビルドの失敗
今日の時点で、私のMavenコンパイルは失敗します。 [INFO] [ERROR] Unexpected [INFO] java.lang.OutOfMemoryError: Java heap space [INFO] at java.util.Arrays.copyOfRange(Arrays.java:2694) [INFO] at java.lang.String.<init>(String.java:203) [INFO] at java.lang.String.substring(String.java:1877) [エラー]メモリ不足。メモリの量を増やすには、起動時に-Xmxフラグを使用します(java -Xmx128M ...) 昨日の時点で、Mavenコンパイルを正常に実行できました。 今日の時点で、ヒープを3GBに増やしました。また、2〜3行のコードを変更しただけなので、この「メモリ不足」エラーがわかりません。 vagrant@dev:/vagrant/workspace$ echo $MAVEN_OPTS -Xms1024m -Xmx3000m -Dmaven.surefire.debug=-Xmx3000m 編集:失敗したモジュールのpom.xmlを変更して、投稿者のコメントを試しました。しかし、同じMavenビルドエラーが発生しました。 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> <fork>true</fork> <meminitial>1024m</meminitial> <maxmem>2024m</maxmem> </configuration> </plugin>

10
Androidアプリのメモリ不足の問題-すべて試しましたが、それでも途方に暮れています
開発中のアプリのメモリリークを把握するために4日間かけてすべてのことを試してみましたが、物事はずっと前に意味をなさなくなりました。 私が開発しているアプリはソーシャルな性質のものなので、アクティビティー(P)をプロファイルし、アクティビティーをデータ付きでリストします(例:バッジ(B))。プロファイルからバッジリスト、他のプロファイル、他のリストなどに移動できます。 したがって、このようなフローを想像してみてください。P1-> B1-> P2-> B2-> P3-> B3など。各Bページ。 問題の概要は次のとおりです。各ページのサイズに応じて少しナビゲートした後、ランダムな場所(ビットマップ、文字列など)でメモリ不足の例外が発生し、一貫性がないようです。 なぜ私がメモリ不足に陥っているのかを理解するために考えられるすべてのことをした後、私は何も思いつきませんでした。理解できないのは、AndroidがP1、B1などをロード時にメモリ不足でクラッシュしてクラッシュした場合に、P1、B1などを強制終了しない理由です。onCreate()およびonRestoreInstanceState()を介してこれらに戻ると、これらの以前のアクティビティが終了し、復活することを期待します。 これは言うまでもなく、P1-> B1->戻る-> B1->戻る-> B1を実行しても、クラッシュが発生します。これはある種のメモリリークを示していますが、hprofをダンプしてMATおよびJProfilerを使用した後でも、正確に特定することはできません。 Webからの画像の読み込みを無効にし(そして、それを補ってテストを公正にするために読み込まれるテストデータを増やしました)、画像キャッシュがSoftReferencesを使用することを確認しました。Androidは実際にはいくつかのSoftReferencesを解放しようとしますが、メモリ不足になる直前です。 バッジページはWebからデータを取得し、BaseAdapterからEntityDataの配列にロードして、それをListViewにフィードします(私は実際にはCommonsWareの優れたMergeAdapterを使用していますが、このバッジアクティビティでは、とにかく1 つしかアダプターがありませんが、いずれにせよこの事実に言及したかった)。 私はコードを調べましたが、リークするものを見つけることができませんでした。見つけることができるすべてのものをクリアしてnullにし、System.gc()でさえ左右に移動しましたが、それでもアプリがクラッシュします。 スタック上にある非アクティブなアクティビティが取得されない理由はまだわかりません。それを理解したいのですが。 この時点で、ヒント、アドバイス、解決策など、役立つものを探しています。 ありがとうございました。

3
Linuxoom-killerのログを理解する
私のアプリはoom-killerによって殺されました。これは、スワップなしのライブUSBで実行されているUbuntu 11.10であり、PCには1ギガバイトのRAMが搭載されています。実行されている唯一のアプリ(Ubuntuに組み込まれているものを除く)は、私のプログラムflasheravです。/ tmpはメモリマップされており、クラッシュ時に約200MBのファイルが含まれていたことに注意してください(したがって、最大200MBのRAMを使用していました)。 om-killerログを分析して、すべてのメモリがどこで使用されているかを正確に理解できるようにする方法を理解しようとしています。つまり、合計で最大1ギガになり、oom-killerキックが発生するさまざまなチャンクは何ですか。に?それを理解したら、1 GBのRAMを搭載したマシンでアプリが実行されるように、違反者の使用量を減らすことに取り組むことができます。私の具体的な質問はです。 状況を分析するために、「total_vm」列を合計すると、609342KBしか得られません(/ tmpの200MBに追加しても、まだ809MBです)。「total_vm」列が何であるかについて間違っているかもしれません-割り当てられているが使用されていないメモリと共有メモリが含まれていますか。はいの場合、実際に使用されているメモリを大幅に誇張するべきではありません(したがって、メモリが不足するべきではありません)。以下のリストに記載されていない、使用中の他のメモリチャンクはありますか? [11686.040460] flasherav invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0 [11686.040467] flasherav cpuset=/ mems_allowed=0 [11686.040472] Pid: 2859, comm: flasherav Not tainted 3.0.0-12-generic #20-Ubuntu [11686.040476] Call Trace: [11686.040488] [<c10e1c15>] dump_header.isra.7+0x85/0xc0 [11686.040493] [<c10e1e6c>] oom_kill_process+0x5c/0x80 [11686.040498] [<c10e225f>] out_of_memory+0xbf/0x1d0 [11686.040503] [<c10e6123>] __alloc_pages_nodemask+0x6c3/0x6e0 [11686.040509] [<c10e78d3>] ? __do_page_cache_readahead+0xe3/0x170 [11686.040514] [<c10e0fc8>] filemap_fault+0x218/0x390 …

3
並列無限Javaストリームがメモリ不足になる
次のJavaプログラムがを提供する理由を理解しようとしていますがOutOfMemoryError、対応するプログラムなしで.parallel()は対応していません。 System.out.println(Stream .iterate(1, i -> i+1) .parallel() .flatMap(n -> Stream.iterate(n, i -> i+n)) .mapToInt(Integer::intValue) .limit(100_000_000) .sum() ); 2つの質問があります。 このプログラムの意図する出力は何ですか? これがない.parallel()場合、これは単純に出力するように見えますsum(1+2+3+...)。つまり、flatMapの最初のストリームで単に「行き詰まる」ということです。これは理にかなっています。 並列では、予想される動作があるかどうかはわかりませんが、それは何らかの形で最初のnストリームをインターリーブしたと思われます。ここnで、並列ワーカーの数です。また、チャンク/バッファリングの動作に基づいて少し異なる場合もあります。 メモリが不足する原因は何ですか?具体的には、これらのストリームが内部でどのように実装されるかを理解しようとしています。 何かがストリームをブロックしていると思うので、ストリームが終了せず、生成された値を取り除くことができますが、評価の順序とバッファリングが発生する場所がわかりません。 編集:必要に応じて、Java 11を使用しています。 Editt 2:どうやら同じことは単純なプログラムIntStream.iterate(1,i->i+1).limit(1000_000_000).parallel().sum()でも発生するので、limitではなくの怠惰に関係している可能性がありflatMapます。

2
WeakHashMapを使用しているにもかかわらずOutOfMemoryException
を呼び出さない場合System.gc()、システムはOutOfMemoryExceptionをスローします。なぜSystem.gc()明示的に呼び出す必要があるのか​​わかりません。JVMはgc()それ自体を呼び出す必要がありますよね?お知らせ下さい。 以下は私のテストコードです: public static void main(String[] args) throws InterruptedException { WeakHashMap<String, int[]> hm = new WeakHashMap<>(); int i = 0; while(true) { Thread.sleep(1000); i++; String key = new String(new Integer(i).toString()); System.out.println(String.format("add new element %d", i)); hm.put(key, new int[1024 * 10000]); key = null; //System.gc(); } } 以下のように追加-XX:+PrintGCDetailsして、GC情報を印刷します。ご覧のとおり、実際には、JVMは完全なGC実行を試みますが失敗します。私はまだその理由を知りません。System.gc();行をコメント解除すると、結果がポジティブになるのは非常に奇妙です。 add new element …

1
Entity Framework Coreは、メモリオーバーフローなしで大きなblobデータをトラバースします。ベストプラクティス
大量の画像データをトラバースするコードを書いて、送信用に圧縮されたすべてを含む大きなデルタブロックを準備しています。 このデータの例を以下に示します [MessagePackObject] public class Blob : VersionEntity { [Key(2)] public Guid Id { get; set; } [Key(3)] public DateTime CreatedAt { get; set; } [Key(4)] public string Mediatype { get; set; } [Key(5)] public string Filename { get; set; } [Key(6)] public string Comment { get; set; } [Key(7)] …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.