2


0

私は自分のアプリケーションのパフォーマンスを調整していて、RMIを介して送信しているオブジェクトのサイズを測定する良い方法を知りたいのです。

目的は、私のオブジェクトをスリムにすることです。

5 Answer


0


あなたのオブジェクトはすでにシリアライズ可能なので - これを行うにはObjectOutputStreamのsize()メソッドを使うことができます。


0


これを行う最も簡単な方法は、オブジェクトをファイルに書き込むテストコードを入れることです。 次に、ファイルのサイズを見てください。

あるいは、ディスクに書き込みたくない場合(そしてオブジェクトがメモリを消耗させることはないでしょう):

ByteArrayOutputStream bout = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bout); oos.writeObject(theObjectIWantTheSizeOf); oos.close(); System.out.println( "オブジェクトサイズは"です。 "bout.toByteArray()。length:


0


_ これは十分ではありません-クラスはインスタンスのシリアル化された形式と同様に送信されます。 _

クラスは一度だけ送信されるべきであり、それはそれがディスク上にあるサイズになります。 あなたは一度だけ、あるいは何度もオブジェクトを送っていますか? 後者の場合、クラスのサイズは重要ではありません。


0


あなたが最初にあなたが使用しているRMIプロトコルを確認する必要があります。 * EJB 3 を使用している場合は、CORBA(RMI-IIOP)を呼び出している可能性があります。 パフォーマンスを向上させたい場合は、RMIオーバージップIOP( ZIOP *) - 帯域幅の使用量を減らすGIOPのジップバージョンを使用できます。 http://docs.jboss.org/jbossremoting/2.5.2.SP2/html_single/を試してください。


-1


数か月前、私は Javaspecialistのサイトでこの記事 Instrumentation Memory Counterを見つけ、メモリ使用量を計算しました。 Javaオブジェクト おそらくそれはあなたにとって役に立つかもしれません。