迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

使用 PowerShell 测量脚本的运行时间

作者:迹忆客 最近更新:2024/02/07 浏览次数:

预计在创建脚本后检查脚本的运行时间。如果有任何修订会使脚本变慢或变快,它可以帮助开发人员用可测量的值来衡量脚本。

在 Windows PowerShell 中,有一种方法来衡量这一点,在本文中,我们将学习如何准确地做到这一点。


在 PowerShell 中使用 Measure-Command Cmdlet 测量脚本的运行时间

在 PowerShell 中使用 Measure-Command cmdlet 可以轻松测量运行时间或执行时间。此命令还可以告诉你执行自定义函数或整个脚本需要多长时间。

Measure-Command 是一个易于使用并提供直观、可操作的输出的 cmdlet。

Measure-Command cmdlet 需要两个参数:-Expression-InputObject-InputObject 参数以任何方式表示一个或多个表达式。

它很简单,但提供了有价值的指标,让你了解代码的性能。

让我们在性能调整示例中使用 Measure-Command。假设我们有一个定义为 $arr01 = @() 的数组。

我们将使用带范围创建的整数来保持简单。我们将使用 += 将这些数字添加到数组中。

$arr01 = @()
0..10000 | ForEach-Object { $arr01 += $_ }

上面的代码片段执行了,但是执行了多长时间?让我们用 Measure-Command 找出答案。

首先,我们可以将代码包装在表示表达式的脚本块中,并将其用作 Measure-CommandExpression 参数。

示例代码:

Measure-Command -Expression { 0..10000 | ForEach-Object { $arr01 += $_ }}

输出:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 76
Ticks             : 762558
TotalDays         : 8.82590277777778E-07
TotalHours        : 2.11821666666667E-05
TotalMinutes      : 0.00127093
TotalSeconds      : 0.0762558
TotalMilliseconds : 76.2558

请注意,Measure-Command 返回的时间被分解为不同的类别。我们不需要执行任何数学运算来转换秒、分钟或小时。

这都是返回的对象 Measure-Command 的一部分。

如果我们需要引用总秒数,我们将引用 TotalSeconds 属性。我们可以将 Measure-Command 的输出分配给一个变量并引用所有属性。

$slow_performance = Measure-Command -Expression { 0..10000 | ForEach-Object { $arr01 += $_ }}

现在让我们使用 ArrayList 来使用更快的方式将元素添加到数组中,看看它有多快。

示例代码:

$arr01 = [System.Collections.ArrayList]@()
$fast_performance = Measure-Command -Expression { 0..10000 | ForEach-Object { $arr01 += $_ }}

$fast_performance

输出:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 7
Milliseconds      : 346
Ticks             : 73465163
TotalDays         : 8.50291238425926E-05
TotalHours        : 0.00204069897222222
TotalMinutes      : 0.122441938333333
TotalSeconds      : 7.3465163
TotalMilliseconds : 7346.5163

我们还可以使用 Measure-Command 检查 PowerShell 文件 (.ps1) 的运行时。

示例代码:

Measure-Command { .\checkdrives.ps1 | Out-Default }

输出:

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 30
Ticks             : 308166
TotalDays         : 3.56673611111111E-07
TotalHours        : 8.56016666666667E-06
TotalMinutes      : 0.00051361
TotalSeconds      : 0.0308166
TotalMilliseconds : 30.8166

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 PowerShell 中提取子字符串

发布时间:2024/02/07 浏览次数:162 分类:编程语言

本文将讨论如何使用 PowerShell 的字符串库有效地提取字符串中的子字符串。作为 Windows 管理员的一个典型场景是找出一种方法来在称为子字符串的字符串中查找特定的文本片段

在 PowerShell 中连接字符串

发布时间:2024/02/07 浏览次数:174 分类:编程语言

本文将展示我们可以在 PowerShell 中使用的所有可能的方法来连接字符串和变量。PowerShell 使用不同的运算符和函数来实现字符串连接。

在 PowerShell 中获取变量的字符串长度

发布时间:2024/02/07 浏览次数:113 分类:编程语言

本教程将教你在 PowerShell 中获取变量的字符串长度。字符串是 PowerShell 中最常用的数据类型之一;它包含字符或文本的序列。你可以使用单引号或双引号定义字符串。

使用 PowerShell 替换文件中的文本

发布时间:2024/02/07 浏览次数:118 分类:编程语言

本教程将教你使用 PowerShell 替换文件中每个出现的字符串。PowerShell 是一个强大的工具,可以执行不同的文件和文件夹操作。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便