bat性能效率受啥影响


  代码效率的提高每每由算法决定,曾发过专贴(浅谈提升代码效率的编写习惯:http://tieba.baidu.com/p/1187281687),可是以实例为主,并无太多的文字说明,如今概括一下:
影响代码效率的主要有几点:算法

1.1 外部命令、goto、call 的调用次数
  这是众所周知的,这里只列个提纲,就不详加说明了
1.1.1 外部命令启动慢、运行快,因此不宜频繁启动
1.1.2 goto、call、exit 都是比较耗时的(相对于 for 构建的循环)
1.1.3 管道至少开启两个新进程(内部命令或语块将启用 cmd 解析执行),不解释
1.1.4 for /f 从命令获取输入时必然启用 cmd 进程,不解释url

1.2 变量尽可能少
  批处理中的变量是以变量表的形式存储,每次读取时从头读到符合条件的变量位置,因此咱们所设定的变量越多、在表中位置越靠后,效率越低。
  值得注意的是,变量不单单受 set 影响,setlocal 的本质也是开辟一个新的变量表做为本地化操做下的临时变量环境,因此每次使用 setlocal 都会增长将当前的变量表所占用的空间,但由于旧的变量表处于“隐藏”状态,因此对效率没有明显的影响进程

1.3 算法思想(重点)get

1.4 影响环境的操做尽可能少
  包括变量写入、句柄的重定向、除 nul 以外全部设备的输出(文件是 file 设备)等等都是比较耗时的,这个也在旧帖中亦有较详细的论述,在此略过不谈。cmd

相关文章
相关标签/搜索