【问题标题】:Does NIO deliver advantages even on consuming small serialized Stream from /dev/shm?NIO 是否在使用 /dev/shm 中的小型序列化流时也能提供优势?
【发布时间】:2013-05-06 21:10:05
【问题描述】:

例如有一些应用程序(在我的 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);
}

【问题讨论】:

    标签: java ipc nio shared-memory


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      相关资源
      最近更新 更多