Bir işlemin hangi CPU'da çalıştığını belirleme


19

Sysinternals'ın İşlem Gezgini'ni kullanarak, bir işlemin hangi CPU'da çalıştığını göstermek için kullanılabilecek bir sütun var mı? Sütun yoksa, başka bir yol var mı?



3
@DavidPostill - En iyi yanıt, Process Explorer'ın web sayfasını gösterir. Sorum şu: süreç gezgini verildiğinde , bir işlemin hangi çekirdeğin başlatıldığını nasıl belirleyebilirim?
rory.ap

Yanıtlar:


47

İstenilen 2005 :

Process Explorer'da entegre edilen özelliklerden çok etkilendim, ancak her işlem CPU benzeşimini ana pencerede bir sütun geçişi olarak görüntülemek için bir seçenek görmek istiyorum.

Cevap yok.

Talep edilen 2007 yılında :

Mükemmel yardımcı programlar için teşekkürler. Benim isteğim explorer CPU yakınlığını görüntülemek için işlemek için bir sütun seçeneği eklemektir. Bu kadar.

Cevap yok.

2013 yılında tartışılan benzer :

İşlemin üzerinde çalıştığı çekirdek üzerindeki kullanımın toplamını gösteren Çekirdek Kullanımı adlı yeni bir İşlem Performansı Görünümü Sütunu olsaydı gerçekten güzel olurdu.

Temel özet: Yapılamaz.

Konular , işlemlere değil, işlemek için çekirdeklere gönderilenlerdir. Modern süreçlerin çoğunda birden fazla iş parçacığı vardır.

Bir işlemin benzeşimini elle ayarlarsanız, işlemin tüm iş parçacıklarının tek bir işlemciye yapışması gerekir. Manuel olarak ayarladığınızdan, hangi CPU'da olduğunu bilmelisiniz. ;)

Ancak, belirtmezseniz, iş parçacıkları işletim sistemi ve altta yatan işleme donanımı tarafından kontrol edilir ve işlemciler arasında görüntülenemeyen ve büyük olasılıkla görüntülendiği zamana kadar yanlış olan bir hızda atlar. sen.

Belki daha fazla bilgi için şu SU sorusuna göz atın:

Ayrıca StackOverflow'dan:

Şimdi programı yazdıysanız, geçerli işlemciyi işlevin çağrıldığı iş parçacığına göre bildiren GetCurrentProcessorNumber kullanabilirsiniz.

Bunu kullanmak , iş parçacıklarınızın işlemci kullanımı hakkında tahminler yapmanıza olanak tanır , çünkü iş parçacıklarının bir sonraki aşamaya bir döngü olacağından emin olamazsınız (benzeşimi amaca uygun olarak ayarlamadığınız sürece).

Daha fazla bilgi:


3
Güzel cevap ... :)
DavidPostill

@DavidPostill - Kabul etti.
rory.ap

Büyük soru, belirli bir soruyu cevaplarken, tarihe ve nedenlere girer ve kavramları anlamaya yardımcı olur.
Smithers

1
Hem Linux hem de Windows'da, benzeşimi her iş parçacığı esasına göre ayarlamak mümkündür. Bununla birlikte, bu nadiren her zaman yararlıdır, bu nedenle nadiren yapılır, bu nedenle eğer ayarlanırsa genel bir izleme programında iş parçacığı başına yakınlık gösterirse , büyük çoğunluk çekirdeğin istediği gibi zamanlamasına izin verir.
Bob

İşletim sistemi, GetCurrentProcessorNumber çağrıldıktan hemen sonra (ancak yürütmeye başlamadan hemen önce) ve tekrar döndükten hemen sonra iş parçacığınızı başka bir işlemciye bile geçirebilir, bu nedenle sonuç ne çağrı sırasındaki işlemci ne de o andaki işlemci olur. çağrı geri döner!
gnasher729

8

Bu, bir xperf izini yakalayıp Windows Performans Araç Seti'nden Windows Performans Çözümleyicisi (WPA.exe) ile açarak yapılabilir, burada işlemin hangi CPU (Çekirdek) çalıştığını görmek için bir sütun CPU ekleyebilirsiniz:

resim açıklamasını buraya girin


Güzel. Her CPU altında aynı işlemi listeliyor mu (birden fazla kullanıyorsa)? Yakalanan bir xperf izi kullandığından, canlı raporlama olmadığı anlamına mı geliyor?
Jancʜιᴇ007

@ Ƭᴇcʜιᴇ007 ETW olayları çalışma zamanında da kullanılabilir. Bunları bir ETL dosyasına yazmak sadece bir yoludur. Evet, her ikisini de kullandığında her iki CPU altındaki işlemleri listeler.
magicandre1981
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.