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

标签 java

我有一个通过 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/

相关文章:

java - 将 Spring Boot 应用程序部署到 Weblogic — Weblogic 尝试将我的主类作为 XML 资源加载,但失败

java - 从 JSON 到没有表名的对象

java - Android 如何沿着手指画一条平滑线

java - 如何在GWT中设置文本框中子字符串的颜色?

java - 如何访问另一个应用程序数据库并插入一些记录

java - Android Studio 路径

java - 将 PSS 参数中的 "salt length"参数更改为 BouncycaSTLe

java - 创建员工类和员工类演示?

java - IntelliJ : Re-format existing code with additional rules

java - 快速音频文件输出