是否最好将所有工作分成一个循环或将其分成几个循环?

Sam*_*rsa 2 c++

我正在解析一个非常繁重的文件夹结构(就文件夹和文件的数量而言).我必须浏览所有文件夹并解析我遇到的任何文件.文件本身很小(1000-2000个字符,但有些更大).我有两个选择:

  1. 浏览所有文件夹和文件,并在一个大的递归循环中解析我遇到的任何内容.
  2. 浏览所有文件夹并存储我遇到的所有文件的路径.在另一个循环中,通过引用存储的文件路径来解析文件.

哪个选项会更好,也许更快(速度最有可能是I/O限制,所以最有可能不会产生影响,但我想我还是会问)?

In *_*ico 7

您选择的选项可为您提供最易读且最易理解的代码.

特别是因为您提供的两个选项在功能上是相同的.说真的,你希望能够让别人和你自己在未来能够看到它,并对它的作用有一些线索.

"最易读,最易理解的"几乎总是意味着"最简单,最简单的方式".(虽然有些代码本质上很复杂.但这仍然不是编写不可读代码的借口.)在我看来,选项1听起来更容易实现,但是请亲自尝试.瓶颈的配置文件如果不够快.

最有可能的是,实际磁盘I/O将比任一选项所需的总处理器周期或内存访问花费更长的时间,因此您选择的选项可能甚至不相关.但是,确定程序运行速度以及是否需要改进的唯一方法是分析.