Windows 相当于 UNIX 的“time”命令

Windows 相当于 UNIX 的“time”命令

因此,Unix 有一个time命令,可让用户计时他们的代码/其他内容。我想知道 Windows 命令行是否有类似的东西。

另外,我之前问过一个关于 Linux 命令行的问题这里我们可以对 Windows 做同样的事情吗?如果可以,怎么做?

答案1

使用 Powershell

Measure-Command {start-process whateveryouwantexecute -Wait}

根据您的需要编辑@efficiencylsBliss:

Measure-Command {start-process java -argumentlist "whateverargumentisneeded" -wait}

答案2

我使用的是 Win XP,但出于某种原因,timeit.exe它对我来说不起作用。我找到了另一种替代方案 ptime::

ptime 1.0 - 准确测量程序执行时间

ptime 将运行任何指定的命令和参数,并以秒为单位测量执行时间(运行时间),精确到 5 毫秒或更高。它是一个自动进程计时器,或用于基准测试目的的程序计时器。

答案3

您可以使用批处理脚本稍微作弊一下......

@echo off
echo %time% < nul
cmd /c %1
echo %time% < nul

然后将您的程序作为该脚本的参数运行......

定时器myprogram.exe

以及争论......

计时器“myprogram.exe -sw1 -sw2”

示例输出:

17:59:20.02
some text
17:59:20.03

将批处理脚本放在 PATH 变量中的某个位置,例如,C:\Windows\System32将其命名为timer.cmd。当然,分叉第二个 cmd 实例会对性能造成轻微影响,尽管影响很小。

答案4

一些咖啡让我想到了这个:

function time { $Command = "$args"; Measure-Command { Invoke-Expression $Command 2>&1 | out-default} }

如果你希望它不输出任何内容,只需将其替换为 out-null:

function timequiet { $Command = "$args"; Measure-Command { Invoke-Expression $Command 2>&1 | out-null} }

你可以像这样使用它:

PS C:\> time sleep 5


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 990
Ticks             : 49906722
TotalDays         : 5,77624097222222E-05
TotalHours        : 0,00138629783333333
TotalMinutes      : 0,08317787
TotalSeconds      : 4,9906722
TotalMilliseconds : 4990,6722



PS C:\>

相关内容