保存和构建分块图像最有效的内存方式是什么?

时间:2015-07-09 13:33:14

标签: java

我有一台服务器通过JSON Web服务接受分块图像。 目前它工作正常,但我很担心,因为我一直在使用分块数据读取和写入文件。

如果您需要10,000张/分钟(10KB)的图像,那么实现此功能的内存效率最高的方法是什么?

目前,我只是将块直接写入文件。

1 个答案:

答案 0 :(得分:1)

谈论记忆效率(据我所知)你已经处于最顶层。您正在将分块图像写入磁盘,然后(希望)当垃圾收集器下次清理时它们将从内存中消失。如果缓冲内存中的图像块应该尝试更好:

想象一下像这样的课程

public class InMemoryBuffer {
    Set<ChunkedImage> bufferedObjects;

    void buffer(ChunkedImage image) {
        bufferedObjects.add(image);
        if (sizeOfBufferExceedsThreshold())
        {
             // write buffered images to disk
        }
     }
}

我不确定我是否明确表达了我的观点。但在我看来,最好的解决方案在很大程度上取决于您的环境和您对内存效率的理解。在上面的示例中,待填充部分是确定是否要将缓冲的图像写入磁盘和写入磁盘部分的方法。此时,您最终可以从多线程中获利。