我正在从头开始阅读编程
在第5章,
程序使用500字节缓冲区进行1字节长的字符转换。
不应该使用双循环吗?
loop1用于从文件读取500字节乘500字节。
loop2用于处理500字节中的某些内容,可能是一个字节。
我觉得这会让程序变得更复杂。
如果我使用字节缓冲区进行转换
没有必要,只有一个循环
loop1:读取1byte并处理它。
对于简单的大写转换器,使用500字节缓冲区有什么好处吗?
我的开发环境是x86,linux,assembly,at& t syntax
答案 0 :(得分:1)
考虑一次执行500(或更多)字节的唯一原因是它可能会减少函数调用到您用于I / O的库和/或操作系统服务的数量。我建议你尝试两种方式并测量自己的性能差异。假设您的两个版本被编译为名为ala uppercase.
version 的可执行文件,您可以通过在shell提示符下键入以下内容来获取有关CPU及其运行时间的报告:
time uppercase.byte_by_byte < input > output
time uppercase.500_byte_blocks < input > output