gpt4 book ai didi

java - Buffered ObjectInputStream 是否存在?

转载 作者:搜寻专家 更新时间:2023-10-30 21:44:51 25 4
gpt4 key购买 nike

我正在从一个大小为 350KB 的文件中反序列化一个对象,这需要相当长的时间。我的计算机科学助教告诉我,有一种方法可以将缓冲读取器与 ObjectInputStream 一起使用,从而大大提高性能。然而,我在 Google 上找不到任何相关信息。

最佳答案

您使用修饰来缓冲输入流。像这样

   InputStream in = ...; // your underlying stream (e.g. FileInputStream)
ObjectInputStream oin = new ObjectInputStream(new BufferedInputStream(in));

这将确保每次调用 ObjectInputStream 都不会调用 in 中的基本流,例如 OS 的文件读取系统调用。相反,每次调用都会转到缓冲输入流,它会获取和缓存数据 block (默认为 8K),并从中读取。这样更快,因为从流中读取现在是 java 中的本地方法调用,并且很少遇到系统调用的方法调用开销。缓存一致性和 JIT 优化也在提高性能方面发挥作用。

关于java - Buffered ObjectInputStream 是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365261/

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