【发布时间】:2011-08-03 13:26:39
【问题描述】:
我有一个理论问题。假设您有一个InputStream 和一个OutputStream。您需要将内容从一个复制到另一个,并且您不知道需要传输的内容的确切大小。 write 方法中块大小的最佳选择是什么?
【问题讨论】:
-
这被称为“过早优化”。使用诸如 Apache Commons IO 之类的库,然后,如果您遇到性能问题,请调整块大小。最佳值将取决于连接到输入和输出流的内容(磁盘文件、管道、网络连接等)
-
我通常使用 4096 作为文件访问的块大小。它在很多情况下都很有效。虽然 4096 是非常小的块,但与磁盘访问成本相比,方法调用成本可以忽略不计。