Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

PowerShell: Wydajność komputera

piątek,

PowerShell: Wydajność komputera

W PowerShell można wykonać podstawowe testy wydajności komputera, chociaż nie są one tak zaawansowane, jak dedykowane oprogramowanie benchmarkowe. Możliwe jest uzyskanie podstawowych informacji o wydajności, co jest użyteczne do wykonywania szybkich testó∑ ad-hoc. Dla bardziej kompleksowej analizy wydajności zaleca się użycie specjalistycznego oprogramowania benchmarkowego.

Przykłady

Prezentowane możliwości są tylko przykładami i mogą być dostosowane do konkretnych potrzeb. PowerShell oferuje ogromną elastyczność, dzięki czemu można tworzyć bardziej złożone skrypty do testowania i monitorowania wydajności systemu.

Testowanie wydajności dysku

Jednym ze sposobów testowania wydajności dysku jest użycie komendy Measure-Command, która mierzy czas potrzebny na wykonanie określonego zadania. Przykładowo, możesz zmierzyć czas potrzebny na zapisanie i odczytanie pliku z dysku:

# Mierzenie czasu zapisu pliku
$writeTest = Measure-Command {
    1..100KB | Set-Content testfile.txt
}

# Mierzenie czasu odczytu pliku
$readTest = Measure-Command {
    Get-Content testfile.txt
}

# Wyświetlenie wyników
"Time to write: $($writeTest.TotalMilliseconds) ms"
"Time to read: $($readTest.TotalMilliseconds) ms"

Testowanie wydajności procesora

Do testowania CPU można użyć pętli wykonującej intensywne obliczenia. Na przykład, obliczanie silni dużych liczb:

# Obliczanie silni dużej liczby
$cpuTest = Measure-Command {
    $result = 1
    for ($i = 1; $i -le 10000; $i++) {
        $result *= $i
    }
}

# Wyświetlenie czasu wykonania
"Time taken: $($cpuTest.TotalMilliseconds) ms"

Monitorowanie zasobów systemowych

Możesz również użyć PowerShell do monitorowania użycia zasobów systemowych, takich jak CPU, pamięć RAM, dysk, i sieć:

# Pobieranie i wyświetlenie informacji o użyciu CPU
Get-Counter 'Processor(_Total)% Processor Time'

# Pobieranie i wyświetlenie informacji o użyciu pamięci
Get-Counter 'MemoryAvailable MBytes'

Testowanie wydajności dysku twardego

$testFile = "testfile.tmp"
$fileSize = 1GB
$stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
$file = [io.file]::Create($testFile)
$file.SetLength($fileSize)
$file.Close()
$stopwatch.Stop()
Remove-Item $testFile
$speed = $fileSize / $stopwatch.Elapsed.TotalSeconds
"Szybkość zapisu: $($speed / 1MB) MB/s"

Pomiar wydajności CPU przez obliczenia

Measure-Command { 1..1000000 | % { [math]::Sqrt($_) } }

Monitorowanie wykorzystania pamięci RAM

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 -Property Name, @{Name='Memory'; Expression={($_.WorkingSet/1MB).ToString("F2") + " MB"}}

Sprawdzanie wydajności sieci

Test-NetConnection -ComputerName google.com -TraceRoute

Monitorowanie ogólnego wykorzystania zasobów systemowych

Get-Counter 'Processor(_Total)% Processor Time', 'MemoryAvailable MBytes', 'PhysicalDisk(_Total)Disk Bytes/sec'

Sprawdzanie czasu startu systemu

(Get-CimInstance Win32_OperatingSystem).LastBootUpTime

Pomiar czasu uruchamiania aplikacji

Measure-Command { Start-Process notepad -Wait }

Trzy miesiące temu na naszej stronie…

Artykuł: Pierwszy skrypt bash

Pierwszy skrypt bash

Artykuł: Harmonogram egzaminów maturalnych

Harmonogram egzaminów maturalnych

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły