Windows'ta CPU zamanı nasıl ölçülür?


1

Şu anda kontrol dışı / kapalı olan ve CPU çekirdeğinin tamamını kullanan işlemleri tanımlayan bir program oluşturuyorum. Program daha sonra onları sonlandırır, böylece CPU kullanımı kontrol altında tutulabilir. Bunların hepsi tek iş parçacıklı işlemlerdir.

Ancak, bir sorunla karşılaştım: Windows'da 'görev listesi' komutunu çalıştırdığımda şunu çıktılar:


Image Name:   Blockland.exe
PID:          4880
Session Name: Console
Session#:     6
Mem Usage:    127,544 K
Status:       Running
User Name:    [removed]\[removed]
CPU Time:     0:00:22
Window Title: C:\HammerHost\Blockland\Blockland.exe

Bu yüzden "CPU Time" yazan satırın, programın başladığından beri kullanılan saniye cinsinden toplam sürenin bir göstergesi olduğunu biliyorum.

Ancak sistemde 4 CPU çekirdeği olduğunu varsayalım. Bu, bir çekirdeğin 22 saniyesini kullandığı ve bu nedenle tüm CPU'da toplamda 5.5 saniye kullandığı anlamına mı geliyor? Yoksa bu, işlemin tüm CPU'da 22 saniyeyi kullandığı anlamına mı geliyor?


1
Herhangi bir özel iş parçacığı yalnızca tek bir CPU çekirdeği tarafından ele alınacaktır. Herhangi bir programın nasıl yazıldığına bağlı olarak, farklı çekirdeklere farklı dişler gönderebilir veya her şeyi aynı çekirdeği kullanabilir.
MaQleod

Yanıtlar:


1

"CPU zamanı", program tarafından tüm CPU'larda kullanılan toplam süredir (burada "CPU", HyperTreading devre dışı bırakılmışsa "mantıksal işlemci" anlamına gelir; "HyperTreading etkinse" mantıksal işlemci "anlamına gelir).

Böylece, dört çekirdekli, HT devre dışı bırakılmış bir sistemde, 30 saniye duvar saati boyunca çalışan bir program teorik olarak 120 saniyeye kadar CPU süresini kullanabilir.

MaQleod'un belirttiği gibi, tek bir iş parçacığı bir seferde yalnızca bir CPU üzerinde çalışacak. Ancak, tek iş parçacıklı programlar bugünlerde oldukça nadirdir.

Bu, bir çekirdeğin 22 saniyesini kullandığı ve bu nedenle tüm CPU'da toplamda 5.5 saniye kullandığı anlamına mı geliyor? Yoksa bu, işlemin tüm CPU'da 22 saniyeyi kullandığı anlamına mı geliyor?

Bir çekirdekte 22 saniye olabilir. Bu, dört çekirdeğin her birinde 5.5 saniye anlamına gelebilir, hepsi aynı anda "CPU'nun tamamında 5.5 saniye" olarak tanımlanabilir. Veya bir çekirdekte 5 saniye, diğerinde 2, üçte birinde 15 ve dördüncü çekirdekte hiçbir şey olmayabilir.

Veya 22 saniyelik toplam CPU zamanı, çok fazla beklemeyle daha fazla duvar saati boyunca yayılmış olabilir. Çoğu program zamanlarının çoğunu bekleyerek geçirir. Kullanılan toplam CPU zamanından daha kullanışlı bir ölçüm, kullanılan yüzde CPU zamandır. Ancak, yalnızca anlık olarak hesaplanan programların aksine, CPU domuzlarını gerçekten tanımlamak çok zordur. Bir işlemi sonlandırmak işinizi kaybedebilir ve hatta bozuk dosyaları kaybedebilir - bunu yapmak istediğinize emin misiniz?

İpucu: Boşta işlemi sonlandırmaya çalışmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.