Java Deep Copy-Operationen beschleunigen

Wir haben einen allgemeinen Deep Copy-Mechanismus mit Serialisierung implementiert.

import java.io.*;

public class CopyUtil {

    public static Object clone(Object source) {
        Object retVal = null;
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeObject(source);
            oos.flush();
            oos.close();

            ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
            retVal = in.readObject();
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }

        return retVal;
    }
}

Es gibt eine relativ große Anzahl von Objektklassen, die sich ständig weiterentwickeln, um sie zu pflegen. Dies war der Grund, warum wir mit einem Allzweck-Klonmechanismus fortfuhren. Die Idee, @ zu pflegen, hat uns nicht gefallreadObject() undwriteObject() bei mehr als 200 Klassen.

Leider ist der Serialisierungsmechanismus in Java relativ langsam und es treten Probleme auf, wenn unser System überlastet ist.

Gibt es Vorschläge, wie wir die Dinge etwas beschleunigen können, oder (falls wir dies falsch durchgeführt haben) alternative Methoden zum Klonen von Objekten?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage