java - 优化频繁flush()

标签 java performance io nio flush

我想不断地将数据写入光盘。 我想经常将数据刷新到磁盘(例如每 64MB 的 block )。您能提出什么解决方案?

我认为标准 OutputStream 可能是比 nio.channels 更好的选择,因为它更简单。

最佳答案

如果您正在写入连续的数据流,例如附加到文件末尾,则偶尔调用一次 flush() 的常规 OutputStream 只是与 nio 一样好或更好。 nio 可以为您带来很大优势的地方是编写分布在文件不同区域的许多小块。在这种情况下,您可以使用内存映射文件,这可能是对旧式写入的改进。但是,从我理解的问题来看,您宁愿处理连续的数据流。我建议您实现常规解决方案,该解决方案为您提供更好的代码,并且仅在发现性能不足时才搜索替代方案。在这种情况下,我不希望 nio 产生明显的差异。

关于java - 优化频繁flush(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691736/

相关文章:

python - 将 Python 2.x 文件(如对象)移植到 Python 3

java - 如何在 Java 项目 UML 中对资源进行建模?

java - 如何更改 JTextArea 中的文本颜色?

css - 有许多未使用的 CSS 选择器/规则对性能有何影响?

sql - postgres 中的顺序扫描花费了惊人的时间。如何确定硬件瓶颈?

mysql - 什么是最好的 query_cache_size/Ram 比率

java - Android工作室: Where should I put a binary file to read with object RandomAccessFile?

java - Groovy 更新导致 PermGen 中大量死亡 GroovyClassLoader

java - setItemChecked 用于 ListView 的 Android 选择器在版本 2.2.1 中不起作用

haskell - 我可以使用状态 monad 模拟交互式程序吗?