我有一台带有Power
shell V4.0的
Windows 2008 R2服务器
我有一个非常简单的脚本test.ps1,内容如下:
Write-host "Hello world!"
我从PowerShell提示符中调用此脚本,如下所示:
measure-command { powershell.exe -file .\test.ps1 }
你可以看到我的价值非常高:
Days : 0 Hours : 0 Minutes : 0 Seconds : 7 Milliseconds : 992 Ticks : 79922815 TotalDays : 9,25032581018519E-05 TotalHours : 0,00222007819444444 TotalMinutes : 0,133204691666667 TotalSeconds : 7,9922815 TotalMilliseconds : 7992,2815
要么
Days : 0 Hours : 0 Minutes : 0 Seconds : 4 Milliseconds : 655 Ticks : 46556579 TotalDays : 5,38849293981481E-05 TotalHours : 0,00129323830555556 TotalMinutes : 0,0775942983333333 TotalSeconds : 4,6556579 TotalMilliseconds : 4655,6579
它占用我的CPU 50%.为什么太长了?我尝试使用-noprofile,但它是一样的.
谢谢你的帮助.
Powershell负载和JIT编译吨,吨和吨的东西.这需要大量过多的CPU周期和磁盘I / O.
尝试使用ngen.exe (Native Image Generator)预编译Powershell在启动期间加载的程序集.只是可能会改善您的启动时间.
$FrameworkDir=[Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory() $NGENPath = Join-Path $FrameworkDir 'ngen.exe' [AppDomain]::CurrentDomain.GetAssemblies() | Select-Object -ExpandProperty Location | ForEach-Object { & $NGENPath """$_""" }
阅读关于ngen here的信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。