サイズ10^9の配列をJavaで宣言するには?配列リストを試しましたが、問題は配列の最小要素と最大要素を探す必要があります。したがって、0番目の要素配列の他のすべての要素との配列の最初と私は、コードシェフ上の配列の入力フォーマットで必要とされる配列のいくつかの固定サイズが必要です。誰でも助けることができますか?私は長い配列を使用してみましたが、メモリエラーを出しました。Javaの大規模配列プログラミング
0
A
答えて
2
Java配列の最大サイズはInteger.MAX_VALUE
(場合によっては若干異なる値)で約2.3 * 10^9であるため、理論的にはその大きな配列を作成することは可能です。しかし、10^9は接頭辞giga(読みやすくするため)を意味するので、配列は少なくとも1GB(byte[]
を使用する場合)のサイズを持ちます。配列を使用しているデータタイプによっては、あまりにも多くのメモリが必要になるだけです(int[]
はすでに4GBを占有しています)。
-Xmx
オプションを使用してJVMの最大メモリを増やすことはできますが(最大4GBまで使用できるようにするには-Xmx=4g
を使用できます)、アドレス可能なメモリの最大値によって制限されます(たとえばIIRCでは32ビットJVMは上位4GBまでしか使用できません)と使用可能なメモリです。
また、複数のマシンまたはJVMでアレイを分割して分散して使用することもできます。または、配列を(メモリマップされた)ファイルに書き込んで、配列の一部だけをメモリに保存することもできます。
しかし、最も良いアプローチは、おそらくが実際には多くのメモリを必要としているかどうかを確認することでしょう。多くの場合、巧妙なアルゴリズムや構造を使用すると、メモリ要件が大幅に削減されます。何を使うかは、あなたが最終的に達成しようとしているものによって決まります。
関連する問題
- 1. セグメンテーションフォールト、大規模配列
- 2. Pythonの大規模配列の比較
- 3. 大規模なperlの配列のスローダウン
- 4. 大規模なプロローグでのプログラミング
- 5. 大規模なPHP配列ページ設定
- 6. 大規模な配列をSQLiteにキャッシュする - Java/Android
- 7. のJava:大規模なリスト
- 8. 小規模のJava分散プログラミング
- 9. は、大規模な配列を作りたい大numpyのアレイ
- 10. 大規模なJavaデータ配列の処理と管理を最適化する
- 11. 大規模なJava enumの解読
- 12. WEKAの大規模トレーニングデータセット(Javaコード)
- 13. 中規模大規模プロジェクトの構造
- 14. CUDAでの大規模配列の問題
- 15. ナンプィ配列の減算:大規模配列の値が一貫しない
- 16. Java。 SparkSQLは、大規模なデータセット
- 17. 大規模配列の宣言時にOutOfMemoryExceptionが発生する
- 18. Eclipse上のFortran Openmp大規模配列。プログラムクラッシュ
- 19. プロローグ内で高速な大規模配列のアサートと使用
- 20. 大規模な配列とjavacriptの比較
- 21. Android:大規模な配列を扱うためのベストプラクティス
- 22. 大規模な配列の配列では、Collections.rotateは機能しません
- 23. Pythonで大規模な配列を扱うには?
- 24. シード/キーから大規模な配列/データを作成
- 25. クイックソートが大規模配列で動作しない
- 26. Javaで大規模な文字列リストを扱う
- 27. Odoo大規模デプロイ
- 28. 大規模算術
- 29. 大規模マルチテナントプログラマブルCMS?
- 30. 大きなファイルをmmapingする(永続的な大規模配列の場合)
あなたがしたいことのコードスニペットを追加できますか? –
配列を作成するために ''何でも[1000000000] 'だけです。しかし、それがリファレンスの配列であり、リファレンスごとに4バイトと仮定すると、それは〜4 GBのデータです。メモリが不足している場合は、-Xmxパラメータを使用して作業してください。 (つまり、N個の要素の最小値と最大値を取り出したい場合は、配列全体を読み込む必要はありません)。 – yshavit
あまりメモリがない場合は、おそらくファイルを使用して操作を補うことができます。 – 4castle