如果有人在优化代码、实现的清晰性、效率和可移植性方面证明他们的设计权衡是合理的,人们如何选择?
这个问题的相关示例可能是大文件处理,其中“大文件”是“相当几 GB”的问题,可以使用随机访问方法进行简化。
读取和修改此文件的方法可能是:
- 无论如何都要使用流,并寻找所需的位置 - 这是可移植的,但可能很慢,并且不清楚 - 这几乎适用于所有操作系统。
- 将文件的相关部分映射为一个大块。例如,为每个块映射一个 50MB 的文件块进行处理 - 这适用于许多操作系统,具体取决于为该系统实现 mmap 的细微之处。
- 只需 mmap 整个文件 - 这需要 64 位操作系统,是实现此功能的最有效和最清晰的方法,但不适用于 32 位操作系统。