
如果您持续进行小读 *** 作,那么a
BufferedInputStream将为您带来明显更好的性能。通常,对未缓冲流的每个读取请求都会导致对 *** 作系统的系统调用,以读取请求的字节数。每个系统调用的系统调用开销可能是数千条机器指令。缓冲流通过对内部缓冲区中的8k字节进行一次大读(例如)读取,然后从该缓冲区中分发字节来减少这种情况。这样可以大大减少系统调用的次数。
但是,如果您持续进行大量读取(例如8k或更多),则
BufferedInputStream速度会变慢。通常,您不减少系统调用的数量,并且缓冲会引入额外的数据复制步骤。
在您的用例(先读取20个字节的块,然后读取许多大块)的情况下,我想说使用a
BufferedInputStream更有可能降低性能而不是提高性能。但最终,这取决于实际的读取模式。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)