即使从/ dev / shm消耗小型序列化流,NIO也能提供优势吗?

时间:2013-05-06 21:10:06

标签: java ipc nio shared-memory

E.g。有一些应用程序(在我的src控件之外)生成成千上万个序列化的Map实例,存储为/ dev / shm / {some Map-ID} .ser。它们使用普通的旧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);
}

1 个答案:

答案 0 :(得分:0)

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

您可以在FileInputStream周围尝试BufferedInputStream。