Ускорение операций глубокого копирования Java

Мы реализовали универсальный механизм глубокого копирования с использованием сериализации.

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;
    }
}

Существует относительно большое количество классов объектов, которые постоянно развиваются, чтобы поддерживать - это было причиной, почему мы использовали механизм клонирования общего назначения. Мы не Идея поддерживать readObject () и writeObject () для 200+ классов.

К сожалению, механизм сериализации в Java относительно медленный, и у нас возникают проблемы, когда наша система находится под пиковой нагрузкой.

Существуют ли какие-либо предлагаемые подходы о том, как можно немного ускорить процесс или (в случае неправильного выполнения этого) альтернативные методы клонирования объектов?

5
задан Pram 2 September 2010 в 12:26
поделиться