新建空文本文件,ps比linux的touch快大约10倍
powershell吧
全部回复
仅看楼主
level 7
pck6636 楼主
这是一个真实的事情,挺多年了。是以前我在win中,用gnuwin32的时候遇到的。
尤其是在同时(依次)新建多个文本的时候。
set-content,比touch.exe,快多少并没有具体留数据。
后来我就用set-content,而不用touch.exe了。如果对性能要求极高甚至要用[System.IO.File]::WriteAllText()
这件事给我留下了touch.exe很慢的主观印象,但具体慢多少,没有客观数据,一忙这件事就忘了。
前两天,又遇到建立文件的事了。我就又用centos7。3 + powershell beta 4和touch对比了一下。
性能大概9----10倍。
代码如下:欢迎帮忙测试。
2018年09月27日 05点09分 1
level 7
pck6636 楼主
-------------------【在linux版powershell中调用touch】-------------------
$s = Get-Date
for ($i = 1; $i -lt 1001; $i++)
{
cd /tmp
touch "t_$i.txt"
}
$e = get-date
New-TimeSpan -Start $s -End $e
-------------------【在linux版powershell中调用Set-Content】-------------------
$s = Get-Date
for ($i = 1; $i -lt 1001; $i++)
{
cd /tmp
Set-Content -LiteralPath "t_$i.txt" -Value $null
}
$e = get-date
New-TimeSpan -Start $s -End $e
-------------------------------------
后来我分析了下,touch每次运行,重新创建进程,或许是导致慢的原因。
应该是越多次循环(依次建立文件越多),越慢吧,不知道各位测试结果如何?
因为我很久没更新了,或许我的touch.exe是老旧的?
有人愿意帮忙在win中,或linux中,用最新版本,也实验下吗?
2018年09月27日 05点09分 3
1