Cari Jumlah Masa Pelaksanaan Perintah atau Program di Windows
Anda kadang-kadang mungkin ingin mencari masa pelaksanaan perintah atau program yang anda jalankan. Untuk mengoptimumkan skrip atau program, penting untuk mengetahui berapa lama masa yang diperlukan untuk menyelesaikan pelaksanaan. Ini membantu anda membandingkan jumlah masa berjalan Program A berbanding Program B dan mengoptimumkan kod anda, terutamanya jika anda seorang pembangun perisian, penganalisis, atau penguji perisian profesional.
Mengukur jumlah masa pelaksanaan skrip atau proses adalah salah satu aspek yang paling penting dalam pengoptimuman prestasi. Artikel ini membincangkan pelbagai kaedah untuk mengetahui jumlah masa pelaksanaan program, skrip, atau perintah di Windows.
Cari Jumlah Masa Pelaksanaan Program atau Perintah
Menggunakan PowerShell
PowerShell merangkumi cmdlet Measure-Command
bawaan yang membantu anda mengukur masa yang diperlukan untuk menjalankan blok skrip, cmdlet, atau bahkan program luaran. Berikut adalah contoh baris arahan PowerShell yang mengukur masa yang diperlukan untuk menyelesaikan baris perintah ping google.com
:
Langkah-Perintah Luar-Host
Selepas output arahan ping, anda akan melihat statistik berikut di bahagian bawah.
Hari: 0 Jam: 0 Minit: 0 Detik: 3 Milisaat: 66 Ticks: 30660017 JumlahHari: 3.5486130787037E-05 JumlahJam: 0.000851667138888889 JumlahMinit: 0.0511000283333333 JumlahSecond: 3.0660017 JumlahMilisa detik: 3066.0017
Baca lebih lanjut mengenai Measure-Object di Microsoft Docs.
Perintah mengambil masa 3.06 saat untuk diselesaikan. Argumen Out-Host
, jika dihilangkan, PowerShell menyembunyikan output (perintah Ping
) di konsol - anda hanya akan melihat statistik pelaksanaan.
Sekiranya anda mempunyai baris perintah yang panjang atau anda perlu menjalankan banyak perintah, anda boleh memasukkannya ke dalam fail kumpulan Windows dan kemudian menjalankannya menggunakan PowerShell. Berikut adalah contoh:
$config[ads_text6] not foundLangkah-Proses Permulaan Langkah-Langkah "d: \ batch \ backup.bat"BERKAITAN: Cari Jumlah Perkataan, Huruf dan Garis dalam Fail Teks Menggunakan PowerShell
Menggunakan VBScript
Berikut adalah VBScript ringkas yang mengira jumlah masa pelaksanaan baris perintah, program, atau fail kumpulan.
Tetapkan WshShell = WScript.CreateObject ("WScript.Shell") sCmd = chr (34) & "D: \ Batch Files \ Backup.bat" & chr (34) dtmStartTime = Timer Return = WshShell.Run (sCmd, 1, true ) Wscript.Echo "Tugas selesai dalam" & Round (Timer - dtmStartTime, 2) & "seconds."
- Salin kod di atas ke Notepad
- Simpan fail sebagai
exec_timer.vbs
. - Pada baris ke-2 yang dimulakan dengan
sCmd
, ubah program yang ingin anda jalankan - iaitu, ganti"D:\Batch Files\Backup.bat"
pada contoh di atas dengan aplikasi atau kumpulan yang ingin anda jalankan. - Simpan fail dan tutup Notepad.
- Klik dua kali fail VBScript untuk menjalankannya.
VBScript melancarkan fail kumpulan, perintah, atau program. Setelah selesai berjalan, jumlah masa pelaksanaan ditunjukkan (dalam beberapa saat.)
Menggunakan TimeIt.exe dari Resource Kit Tools
TimeIt.exe
adalah sebahagian daripada alat Kit Sumber Windows Server 2003 yang menunjukkan masa pelaksanaan program atau perintah. Program ini berjalan dengan baik pada Windows 10 juga.
- Setelah memuat turun Alat RK, buka fail rktools.exe menggunakan 7-Zip.
- Kemudian, buka di dalam
rktools.msi
- Cari
TimeIt.exe
dan ekstrak ke folder.
Untuk menjalankan perintah atau fail kumpulan dan mengukur jumlah masa pelaksanaannya, berikut adalah beberapa contoh:
timeit.exe ping google.com
timeit.exe C: \ Batch Files \ Measure command run time \ backup.bat
TimeIt menunjukkan waktu keluar proses dan masa berlalu, antara lain butiran. Semasa saya memeriksa, nilai tulisan byte tidak sesuai dengan ukuran fail output. Tetapi, maklumat baca / tulis byte bukan tajuk perbincangan dalam artikel ini.
Maklumat lanjut
Semasa menulis artikel mengenai mengekstrak audio dari fail video menggunakan FFmpeg.exe, saya terfikir untuk mengukur masa pelaksanaan perintah. Saya menggunakan skrip di atas untuk mengukur masa yang diperlukan untuk mengekstrak audio MP3 dari fail filem menggunakan alat baris perintah FFmpeg.exe.
Kumpulan pertama merangkumi baris arahan ini:
ffmpeg -i "C: \ Movies \ Movie.mp4" -ss 01:20:00 -t 00:00:20 -codec: a libmp3lame -ab 128000 "D: \ output-1.mp3"
Kumpulan ke-2 merangkumi baris perintah ini:
ffmpeg -ss 01:20:00 -i "C: \ Movies \ Movie.mp4" -t 00:00:20 -codec: a libmp3lame -ab 128000 "D: \ output-2.mp3"
Seperti yang anda lihat, bilangan argumen baris perintah dan nilai masing-masing adalah sama. Satu-satunya perbezaan adalah bahawa -ss
(titik permulaan) diletakkan sebelum parameter -i
(input fail), dalam file kumpulan ke-2. Kaedah tersebut disebut Input seeking mengikut dokumentasi FFmpeg.exe. Kaedah pertama disebut Output -ss
di -ss
parameter -i
(input file) muncul sebelum parameter -ss
.
- Dokumentasi FFmpeg mengatakan bahawa kaedah pencarian input jauh lebih cepat daripada pencarian output, kerana ketika menggunakan kaedah sebelumnya, FFmpeg.exe melompat (mencari) terus ke titik Mula yang disebutkan dalam fail input dan mula menyahkod dari titik itu dan seterusnya.
- Manakala, kaedah pencarian output membuka fail terlebih dahulu, mulai menyahkod dari
00:00:00
, dan kemudian membuang data hingga mencapai titik permulaan01:20:00
. Jadi, sumber daya sistem (CPU, Memori, dan Disk I / O) terbuang begitu juga waktu pelaksanaannya meningkat apabila anda menggunakan kaedah pencarian Output.
Dokumentasi FFmpeg.exe betul. Semasa saya menguji, pencarian input berjalan lebih cepat daripada kaedah pencarian output.
$config[ads_text6] not found- Perintah pertama (Output seek) mengambil masa 20.48 saat untuk diselesaikan.
- Perintah ke-2 (Input seek) mengambil masa 16.62 saat untuk diselesaikan.
Sekiranya anda mengetahui kaedah lain untuk mengukur masa pelaksanaan suatu proses, skrip, atau perintah, beri tahu kami.