PowerShell性能优化的陷阱 6


自从上周翻译了几篇PowerShell性能优化的文章以后,在我每次动手写脚本时,文中的观点都会像夏天麦田中的蚱蜢一样,跳来跳去。但是过分的优化会降低生产效率,甚至一不留神,还会掉入陷阱。

比如,我在用-repace中的操作符时,突然想到了.NET中也有string类的replace方法,于是把二者进行了一个PK。

使用Replace操作符

Measure-Command -Expression {
1..10000 | foreach {
'I love PowerShell' -replace 'Power','Powerfull '}
}

使用Replace方法

Measure-Command -Expression {
 1..10000 | foreach {
'I love PowerShell'.Replace('Power','Powerfull ')
}
}

前者花费时间为:0.402秒钟,后者花费时间为0.199秒钟。速度提升接近两倍。当我津津乐道准备以后只用第二种方法时,才回过神来,原来-replace操作符秉承了PowerShell的一贯的家风:大小写不敏感。同时-replace操作符,还支持对象替换,而Replace方法只停留在字符串层面上。二者压根就没有可比性。

不作死就不会死,自己给自己挖了个陷阱。

本文链接: https://www.pstips.net/the-pitfall-in-ps-perf-optimization.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 吴波 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

6 条评论 “PowerShell性能优化的陷阱