我正在编写一个接收图像的FTP服务器,然后调整大小并上传它们.
我当前的进程(伪代码)如下:
val imagesAsBytes: Array[Byte] = ...
val bufferedImage: BufferedImage = ImageIO.read(new ByteArrayInputStream(bytes))
uploadImage(bufferedImage)
这是它的要点.我遗漏了调整大小,因为它并不重要.本质上,我将其序列Array[Byte]化为BufferedImage使用ImageIO模块,然后调整大小.
我做了一些分析,我注意到创建一个BufferedImage使用ImageIO速度非常慢.
如果我只是上传Array[Byte],我可以实现大约4倍的吞吐量,而不是我实际尝试将其转换为BufferedImage.我不能上传的原因Array[Byte]是,我确实需要调整图像大小.我没有被束缚BufferedImage,这只是我的第一次尝试.
有谁知道我可以用来加速这个的一些想法?我应该使用更好的格式BufferedImage吗?
我已经考虑过将大小调整到一个单独的微服务并异步执行它,但它不是第一个版本的选项.
编辑:我已经回顾了这个问题,并且意识到这一点:ImageIO.setUseCache(false)
| 归档时间: | 
 | 
| 查看次数: | 495 次 | 
| 最近记录: |