对于简单的大写转换器,使用500字节缓冲区有什么好处吗?

时间:2011-03-29 01:34:36

标签: linux assembly x86 buffer

我正在从头开始阅读编程

在第5章,

程序使用500字节缓冲区进行1字节长的字符转换。

不应该使用双循环吗?

loop1用于从文件读取500字节乘500字节。

loop2用于处理500字节中的某些内容,可能是一个字节。

我觉得这会让程序变得更复杂。

如果我使用字节缓冲区进行转换

没有必要,只有一个循环

loop1:读取1byte并处理它。

对于简单的大写转换器,使用500字节缓冲区有什么好处吗?

我的开发环境是x86,linux,assembly,at& t syntax

1 个答案:

答案 0 :(得分:1)

考虑一次执行500(或更多)字节的唯一原因是它可能会减少函数调用到您用于I / O的库和/或操作系统服务的数量。我建议你尝试两种方式并测量自己的性能差异。假设您的两个版本被编译为名为ala uppercase. version 的可执行文件,您可以通过在shell提示符下键入以下内容来获取有关CPU及其运行时间的报告:

time uppercase.byte_by_byte < input > output
time uppercase.500_byte_blocks < input > output