取自 FileStream.ReadByte 文档:
http://msdn.microsoft.com/en-us/library/system.io.filestream.readbyte.aspx
这是什么意思,我如何克服这种低效率?
最佳答案
这仅在您从 Stream
继承时才需要关注。这样做时,您必须至少提供一个 Read
方法,ReadByte
在基类中是在它之上实现的。这很好,但是当您的流能够直接获取单个字节时效率低下 - 默认实现将首先在内部创建一个单字节缓冲区,将其传递给 ReadByte
以填充它,然后返回单个字节。如果您可以实现您的缓冲区,以便可以直接返回单个字节,而无需分配临时缓冲区,那么您应该这样做。
对于调用代码,唯一的考虑是当您需要读取字节以将它们存储在缓冲区中时, Read
通常比 ReadByte
更有效,即使您只读取一个字节 - 但如果您真的只需要一个字节字节,并且您使用的流实现提供了优化版本,ReadByte
实际上可能更快。如果您读取单个字节以进行立即处理,那么 ReadByte
根本不应该是问题 - 毕竟,大多数标准流类已经缓冲并且应该提供优化的 ReadByte
。如果有疑问,配置文件。
关于.net - FileStream.ReadByte - 低效 - 这是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3998044/