Logging CPU performance.
<#
.SYNOPSIS
CPUログを取得する。終了方法はCtrl+C。
.DESCRIPTION
アプリケーション実行において観測が必要な最低限のログを取得します。
CPUログを取得する。終了方法はCtrl+C。
.PARAMETER name
データを取得するプロセス名(exeを除いた部分)を記載します。
.PARAMETER duration
データ取得間隔を記載します。(単位は秒)
.PARAMETER out
ファイル出力する場合のファイルパスを記載します。
設定されない場合は、コンソールに出力します。
.INPUTS
None. This script does not correspond.
.OUTPUTS
System.Int32
If success, this script returns 0, otherwise -1.
.EXAMPLE
.\perftype_proc.ps1
ログデータをコンソールに出力します
.EXAMPLE
.\perftype_proc.ps1 -name hoge -out hoge.csv
プロセス名hogeのデータをhoge.csvに出力します。
#>
[CmdletBinding(
SupportsShouldProcess=$true,
ConfirmImpact="Medium"
)]
Param(
$name = 'hoge',
$duration = 1,
$out = ''
)
# 出力するログデータ
$LOG_PROC = @(
'-y',
"\Process(${name})\Private Bytes",
"\Process(${name})\Working Set",
"\Process(${name})\% Processor Time",
"\Process(${name})\Handle Count",
"\Process(${name})\IO Write Bytes/sec"
)
# ログファイルの出力設定
$outarg = @()
if ($out -Ne '') {
if ((Test-Path $out) -Eq $True) {
$overwrite = Read-Host -Prompt "Output file exist: ${out}. overwrite?(y/n)"
if ($overwrite -Ne 'y') {
exit 0
}
}
$outarg = @('-o', $out)
}
typeperf -si $duration $LOG_PROC $outarg
exit 0