浅谈---测试Native Windows Command与Native PowerShell Command的效率高低
2008-05-13 09:04:04
发表此文的原因是由于本人在阅读ghjcona兄写的PowerShell笔记中,其中有一篇谈到Native Windows Command的话题所引发的。
话题如下: 引用:这比使用WMI的Win32_PingStatus简洁多了,当然你要是问为什么不使用直接使用Ping(还有比如dir,del,findstr 等Windows Native Command)呢? 引用:Native Windows Command 本着科学探索的原则^_^ 我们来测试下Native Windows Command是不是真的比Native PowerShell Command执行效率低呢? 我们先建立两个交互式脚本(严格的讲并非是脚本,我在这姑且用脚本一词)文件。 两个脚本文件名为:dos_ping.ps1 和 ps_ping.ps1 dos_ping.ps1内容如下:(也就是我们之前说的Native Windows Command) 复制内容到剪贴板
ps_ping.ps1 内容如下:(PowerShell的调用对象)
代码:ping 127.0.0.1复制内容到剪贴板
接下来我们建立一个主测试PowerShell脚本文件:start_ping.ps1代码:$ping = New-Object System.Net.NetworkInformation.Pingstart_ping.ps1内容如下: 复制内容到剪贴板
补:Measure-Command是一个度量命令,它的作用是获取命令所执行的时间。为了便于观察,在这里我还用了findstr性质提取"TotalSeconds" 总的使用时间。代码:Write-Host "=============================="好了,三个必备文件都准备好了,接下来我们执行start_ping.ps1看看结果如何: ![]() 经过三次测试比较,在PowerShell中使用Native Windows Command所花费的总时间远远高于Native PowerShell Command。 那为什么Native Windows Command的所用时间那么高呢, 因为执行他们PowerShell需要创建一个新进程。而PowerShell Command则不需要。 (如下图:在执行单纯的Native Windows Command时在任务管理器中启动了ping.exe进程) 所以也就证实了,在PowerShell中调用Native Windows Command的效率远低于Native PowerShell Command。 这里只是对于Native Command执行效率的一个小小的数据测试说明,有不到之处还望指出。 本文出自 51CTO.COM技术博客 |



xmuxsp
博客统计信息
热门文章
最新评论
友情链接