Предоставя ли NIO предимства дори при потребление на малък сериализиран поток от /dev/shm?

напр. Има някакво приложение (извън моя 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);
}

person LRI CS    schedule 06.05.2013    source източник


Отговори (1)


Не точно. Почти невъзможно е да се комбинира сериализация на обекти с NIO.

Можете да опитате BufferedInputStream около FileInputStream.

person user207421    schedule 06.05.2013