Windows软件加载时间

时间:2014-08-23 17:04:49

标签: windows shell powershell

有没有办法找出使用程序像MS Word或Adobe Photoshop这样的Windows程序(GUI)实际加载的时间。我理解装载是一个主观问题。想法是找出桌面是否需要关注,或者用户面临的性能是否有任何下降。

2 个答案:

答案 0 :(得分:1)

对命令或任何脚本块计时的常用Powershell方法是Measure-Command,例如:

Measure-Command { Start-Process -FilePath "C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" }

但这只是Powershell开启新流程的时间,而不是应用程序加载新窗口及其所有界面的时间。

幸运的是,Start-Process输出的System.Diagnostics.Process对象有一个名为Responding的属性。 根据{{​​3}},此属性告诉我们相关进程的用户界面是否响应系统。

所以我们可以做这个小脚本:

$StartTime = Get-Date
$WordProcess = Start-Process -FilePath "C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" -PassThru
DO
{
Start-Sleep -Milliseconds 1 
} Until ( $WordProcess.Responding -eq $True )
$EndTime = Get-Date
($EndTime - $StartTime).TotalSeconds

-PassThru允许命令返回我们存储在$ WordProcess中的Process对象。 然后,我们使用此对象的Responding属性来检查其用户界面是否正在响应。

DO ... Until循环将在进程响应时立即停止循环。

" Start-Sleep -Milliseconds 1"将给我们一个毫秒的精度,这对于大多数用途应该足够好。

答案 1 :(得分:0)

我认为这是一个简单的解决方案(powershell):

$datStartTime = Get-Date
Start-Process -FilePath "C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE" -Wait
$datEndTime = Get-Date
($datEndTime-$datStartTime).TotalSeconds

设置应用程序的路径。 Powershell启动应用程序。加载时关闭应用程序 然后,您会看到应用程序打开/关闭所需的时间。

相关问题