gpt4 book ai didi

java - java中最好的多部分base64编码器是什么?

转载 作者:行者123 更新时间:2023-12-01 15:52:52 26 4
gpt4 key购买 nike

我测试了不同的base64编码器mig64、iHarder、sun等。似乎这些需要将整个数据存储在内存中进行转换。

如果我想以多线程方式对大于 1GB 的大文件(流)进行编码,可以使用哪种编解码器实现而不会损坏文件? commons 编解码器似乎有 base64outputstream 包装器。还有其他解决方案吗?

说清楚一点,我有一个1TB的文件,这个文件需要进行base64编码。机器内存2GB RAM,用Java最快的方法是什么?

最佳答案

我不确定哪个编码器更快,您必须测量每个编码器才能确定。但是,您可以通过将文件拆分为 block 来避免内存问题并实现并发。只需确保在某个 6 字节边界上分割它们(因为它均匀地变成 Base64 中的 8 字节)。

我建议选择合理的 block 大小并使用 ExecutorService管理固定数量的线程来进行处理。您可以分享RandomAccessFile之间并写到适当的地方。当然,您必须计算输出 block 偏移量(只需乘以 8 再除以 6)。

老实说,尽管您可能不会意识到并发性带来了多大的性能提升。它可能会因随机访问而压垮硬盘。我首先使用单个线程对文件进行分块。首先看看速度有多快。您处理 1GB 文件的速度可能比您想象的要快。作为粗略的猜测,我会说在现代硬件上需要 1 分钟,甚至写入您正在读取的同一驱动器。

关于java - java中最好的多部分base64编码器是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667954/

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