0

例如,有一些应用程序(在我的 src 控制之外)会生成成千上万个存储为 /dev/shm/{some Map-ID}.ser 的序列化 Map 实例。它们使用普通的旧 java.io.* 包进行序列化。

我的 src 控件中的代码(用于反序列化 Map 实例)是否可以从使用 NIO 而不是普通的旧 java.io.* 包中受益?或者,理论上,鉴于这些 IO 操作是在 /dev/shm 上的,是​​否任何 NIO 优势都被认为可以忽略不计?

private Map<Integer,String> deserializeMapFrKernelSHM(String shmKey) {
    Map<Integer,String> retM = null;
    try {
        FileInputStream frKernelSHM = new FileInputStream("/dev/shm/"+shmKey+".ser");
        ObjectInputStream in = new ObjectInputStream(frKernelSHM);
        retM = (Map<Integer,String>) in.readObject();
        System.out.println("Linux IPC shmop(GET) de-serialized Map<K,V> from /dev/shm/"+shmKey+".ser");
    }catch (Exception e) {
        e.printStackTrace();
    }
    return(retM);
}
4

1 回答 1

0

并不真地。将对象序列化与 NIO 结合起来几乎是不可能的。

您可以尝试在 FileInputStream 周围使用 BufferedInputStream。

于 2013-05-06T23:20:40.710 回答