Frage

Ich mache auf meiner Anwendung einig Performance-Tuning und möchte eine gute Möglichkeit wissen, von der Größe des Objekts messen, die ich über RMI sandte.

Ziel ist es, meine Aufgabe schlanker zu machen.

War es hilfreich?

Lösung

Der einfachste Weg dies zu tun, ist in einigen Test-Code zu setzen, die das Objekt in eine Datei schreibt. dann, auf der Größe der Datei suchen.

oder, wenn Sie nicht wollen, auf die Festplatte schreiben (und Ihre Objekte werden ausblasen Speicher nicht):

ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bout);
oos.writeObject(theObjectIWantTheSizeOf);
oos.close();
System.out.println("The object size is: " + bout.toByteArray().length:

Andere Tipps

Da Ihr Objekt serializable bereits ist - die Größe () -Methode auf Object verwenden können, dies zu tun.

Sie müssen zunächst prüfen, was RMI-Protokoll Sie verwenden. Wenn Sie mit EJB 3 , es könnte CORBA anrufen (RMI-IIOP). Wenn Sie die Leistung verbessern wollen, können Sie das RMI über verwenden - Reißverschluss IOP ( ZIOP ) - eine gezippte Version von GIOP, die die Bandbreitennutzung reduziert. versuchen http://docs.jboss.org/jbossremoting/2.5.2. SP2 / html_single /

  

Dies ist nicht genug - die Klasse kann als die serialisierte Form seiner Instanz als auch gesendet werden

.

Die Klasse sollte nur einmal gesendet werden, und es wird die Größe ist es auf der Festplatte sein. Senden Sie das Objekt nur einmal oder mehrmals? Wenn letzteres der Größe der Klasse soll nicht von Bedeutung sein.

Vor ein paar Monaten, fand ich diesen Artikel Instrumentation Speicher Indikator bei der < a href = "http://www.javaspecialists.eu/" rel = "nofollow noreferrer"> Javaspecialist Website, über die Speichernutzung von Java-Objekten zu berechnen. Vielleicht könnte es für Sie hilfreich sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top