本帖最后由 wudi61600963 于 2021-12-15 03:17 编辑
Powershell 是解释型的脚本语言,排除实现方法和优化问题外想了解具体速度差异建议了解背后编译的过程(解释器),解释器在解释不同语法组合时难免会产生额外操作,因此带来了不同的执行效率。
此外,运行效率来说越接近底层越高效。Powershell 可以通过使用 .net 语法来达到近乎最高效。
对于楼主的情况如果每行文本长度固定的话可以考虑通过文件大小来分割,应该能做到更快。- $fromFile=[io.file]::OpenRead('文件路径')
- $buff=New-Object byte[] 字节数
- $count=$i=0
- do{
- $count=$fromFile.Read($buff,0,$buff.Length)
- if($count -gt 0){
- $to='分割文件名{0}' -f ($i)
- $toFile=[io.file]::OpenWrite($to)
- try{
- $tofile.Write($buff,0,$count)
- }finally{
- $tofile.Close()
- }
- }
- $i++
- }while($count -gt 0)
- $fromFile.Close()
复制代码 最后,降低操作量也是优化效率的关键。例如上述代码中,跳过输出非必要分段也可以进一步提升效率。 |