[解決済み] Javaで、オブジェクトの大きさを決定する最も良い方法は何ですか?
2022-03-15 14:33:05
質問
データ行が山積みされたCSVファイルを読み込むアプリケーションがあります。 データの種類に応じた行数のサマリーをユーザーに提供するのですが、あまりに多くのデータ行を読み込むと
OutOfMemoryError
s. 各行がオブジェクトに変換されます。 そのオブジェクトの大きさをプログラムで簡単に調べる方法はありますか? のプリミティブ型とオブジェクト参照の大きさを定義するリファレンスはありますか?
VM
?
今現在、私は以下のようなコードを持っています。 32,000行 を使い切るまで、できるだけ多くの行を読むというコードも欲しいですね。 32MB のメモリが必要です。 それは別の質問かもしれませんが、それでも私は知りたいのです。
どのように解決するのですか?
を使用することができます。
java.lang.instrument
パッケージ
.
このクラスをコンパイルしてJARに入れる。
import java.lang.instrument.Instrumentation;
public class ObjectSizeFetcher {
private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) {
instrumentation = inst;
}
public static long getObjectSize(Object o) {
return instrumentation.getObjectSize(o);
}
}
を追加してください。
MANIFEST.MF
:
Premain-Class: ObjectSizeFetcher
を使用します。
getObjectSize()
メソッドを使用します。
public class C {
private int x;
private int y;
public static void main(String [] args) {
System.out.println(ObjectSizeFetcher.getObjectSize(new C()));
}
}
で起動する。
java -javaagent:ObjectSizeFetcherAgent.jar C
関連
-
java の例外が発生しました java
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] C言語で配列のサイズを決定するにはどうすればよいですか?
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java の例外が発生しました java
-
IllegalArgumentException この例外を解決する方法
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
javaで非静的な解を静的な参照にすることができない
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
自動配線された依存性のインジェクションに失敗しました。
-
javaでクラスを作成すると、enclosing classでないように見える
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
java 例外。Javaツールの初期化
-
[解決済み] Javaでオブジェクトのサイズを計算する [重複]。