使用 PowerShell 测量脚本的运行时间
预计在创建脚本后检查脚本的运行时间。如果有任何修订会使脚本变慢或变快,它可以帮助开发人员用可测量的值来衡量脚本。
在 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-Command
的 Expression
参数。
示例代码:
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
相关文章
在 PowerShell 中提取子字符串
发布时间:2024/02/07 浏览次数:162 分类:编程语言
-
本文将讨论如何使用 PowerShell 的字符串库有效地提取字符串中的子字符串。作为 Windows 管理员的一个典型场景是找出一种方法来在称为子字符串的字符串中查找特定的文本片段
在 PowerShell 中连接字符串
发布时间:2024/02/07 浏览次数:174 分类:编程语言
-
本文将展示我们可以在 PowerShell 中使用的所有可能的方法来连接字符串和变量。PowerShell 使用不同的运算符和函数来实现字符串连接。
在 PowerShell 中将字符串转换为整数
发布时间:2024/02/07 浏览次数:131 分类:编程语言
-
本教程将教你在 PowerShell 中将字符串转换为整数。在 PowerShell 中使用 [int] 将字符串转换为整数
在 PowerShell 中将字符串拆分为单独的变量
发布时间:2024/02/07 浏览次数:140 分类:编程语言
-
本教程将介绍在 PowerShell 中将字符串拆分为单独的变量。字符串是用于表示文本的字符序列。它是 PowerShell 中常见的数据类型之一。
在 PowerShell 中获取变量的字符串长度
发布时间:2024/02/07 浏览次数:113 分类:编程语言
-
本教程将教你在 PowerShell 中获取变量的字符串长度。字符串是 PowerShell 中最常用的数据类型之一;它包含字符或文本的序列。你可以使用单引号或双引号定义字符串。
在 PowerShell 中查找子字符串的位置
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你在 PowerShell 中查找子字符串的位置。PowerShell 中的字符串和子字符串 字符串是 PowerShell 中使用的常见数据类型。
在 PowerShell 中比较两个字符串对象的内容
发布时间:2024/02/07 浏览次数:65 分类:编程语言
-
本教程将教你比较 PowerShell 中两个字符串对象的内容。字符串是 PowerShell 中最常用的数据类型之一。
使用 PowerShell 替换文件中的文本
发布时间:2024/02/07 浏览次数:118 分类:编程语言
-
本教程将教你使用 PowerShell 替换文件中每个出现的字符串。PowerShell 是一个强大的工具,可以执行不同的文件和文件夹操作。
PowerShell 中加入路径以将两个以上的字符串组合成一个文件路径
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你使用 Join-Path 将两个以上的字符串组合成一个文件路径。