我有一个通过 JSON Web 服务接受分块图像的服务器。 目前它工作正常,但我很担心,因为我不断使用分块数据读取和写入文件。
如果您期望 10,000 张/分钟 (10KB) 的图像,那么实现此功能的最有效内存方式是什么?
目前,我只是将 block 直接写入文件。
最佳答案
谈论内存效率(据我所知),您已经处于领先地位。您将分块图像写入磁盘,然后(希望)当垃圾收集器下次清理时它们将从内存中消失。如果您在内存中缓冲图像 block ,您是否可以提高性能,应该尝试一下:
想象一个这样的类
public class InMemoryBuffer {
Set<ChunkedImage> bufferedObjects;
void buffer(ChunkedImage image) {
bufferedObjects.add(image);
if (sizeOfBufferExceedsThreshold())
{
// write buffered images to disk
}
}
}
我不确定我的观点是否清楚。但在我看来,最佳解决方案很大程度上取决于您的环境以及您对内存效率的理解。在上面的示例中,待填写部分是确定缓冲图像是否写入磁盘的方法以及写入磁盘部分。此时,您最终可以从多线程中受益。
关于java - 保存和构建分块图像的最有效的内存方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31319095/