代碼效率的提高每每由算法決定,曾發過專貼(淺談提升代碼效率的編寫習慣: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