Ashmem比文件慢?

时间:2015-07-31 00:57:19

标签: android linux ashmem

我正在使用ashmem来帮助一对进程协调。在我开始努力使用它之前,我想我会看到它提供了多少普通文件的加速。

    try {

        Random random = new Random(System.currentTimeMillis());

        byte[] buf = new byte[4096];
        random.nextBytes(buf);

        MemoryFile memfil = new MemoryFile("testmem", LENGTH);

        long start = System.nanoTime();
        OutputStream memOs = memfil.getOutputStream();
        memOs.write(buf);
        Log.e(TAG, "Ashmem   writes took " + (System.nanoTime()-start));
        memfil.close();

        OutputStream fos = new FileOutputStream(new File(this.getFilesDir(), "testfil"));
        start = System.nanoTime();
        fos.write(buf);
        fos.flush();
        Log.e(TAG, "File     writes took " + (System.nanoTime() - start));
        fos.close();
    } catch (IOException e) {
        Log.e(TAG, "Failed to open ashmem: ", e);
    }

以下是一些典型的数字

07-30 20:49:01.742    2994-2994/? E/AshmemTestActivity﹕ Ashmem   writes took 214531
07-30 20:49:01.742    2994-2994/? E/AshmemTestActivity﹕ File     writes took 68541

即使我有时间关闭文件,这些数字也不会变得更好。内存写入如何比磁盘上的文件慢?我做错了什么?

0 个答案:

没有答案