gpt4 book ai didi

java - 使用 Java 进行动态图像缓存

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:25 27 4
gpt4 key购买 nike

我有一个带有 API 的 servlet,可以从 GET 请求传送图像。 servlet 根据 GET 请求的参数创建 CAD 命令的数据文件。然后将该数据文件传送到图像解析器,该图像解析器在文件系统上创建图像。 servlet 读取图像并返回响应中的字节。

所有 IO 和图像解析器程序的调用都可能非常繁重,大约 80kb 的图像在本地系统上渲染时间为 3-4000 毫秒。

GET 请求大约有 20 个参数。每个都与图像的不同部分相关。因此,可能的图像组合非常大。

为了减少加载时间,我计划将渲染图像的 BLOB 存储在数据库中。如果 GET 请求与之前执行的请求匹配,我将从缓存中提取。否则,我将渲染一个新的。这不会修复“第一次”运行,但会帮助“n+1 次运行”。

关于如何提高性能还有其他想法吗?

最佳答案

您可以将文件存储在您的磁盘上,并将图像路径存储在数据库中,因为数据库存储通常比文件系统存储更昂贵。

对 http get 参数进行排序,并将它们散列为该图像记录的索引,以便通过参数进行快速查询。

为确保您的程序在磁盘容量不足时不崩溃,您应该删除未使用或很少使用的记录:

为每条记录存储一个 lastAccessedTime,每次请求图像时更新。

使用调度程序检查 lastAccessedTime,删除低于指定权重的记录。您可以使用不同的策略来计算权重,例如lastAccessedTime、accessedCount、image size等。

关于java - 使用 Java 进行动态图像缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com