Windows Önceliği ve Yakınlığı nedir ve hangi avantajları sağlar?


9

Öncelik ve Yakınlık tam olarak nedir (Görev Yöneticisi'nde bulunur) ve ne için kullanılırlar:

Görev Yöneticisi'nde bulundu

Hangi durumlarda kullanılmalı / kullanılabilmeli ve bu ayar özelleştirilirken hangi avantajlar bulunur?

Yanıtlar:


3

Yakınlık ayarlamak bir şey yapar, ancak asla kullanmak istemezsiniz.

CPU benzeşimini ayarlamak Windows'u yalnızca seçilen CPU'yu (veya çekirdekleri) kullanmaya zorlar. Yakınlığı tek bir CPU'ya ayarlarsanız, Windows bu uygulamayı yalnızca o CPU'da çalıştırır, asla başkalarında çalıştırmaz.

Windows, çalışan uygulamaları otomatik olarak en az meşgul işlemciye koyar, bu nedenle onu tek bir CPU ile sınırlamak Windows'un işini yapmasına izin vermez. CPU / çekirdek 1 başka uygulamaları çalıştırmakla meşgul olsa bile, Windows CPU / Core 2'de ayarlanmış yakınlığa sahip bir uygulamayı çalıştıramaz.

Bunu yapmak istemenizin tek nedeni, çok işlemcili / çekirdek sistemde çalışırken düzgün çalışmayan eski bir uygulamayı çalıştırmaktır.


6
> asla kullanmak istemeyeceksiniz. Doğru değil. Tek iş parçacıklı bir uygulama varsa, o zaman olamaz onların verdiği ölçüde CPU ipler / çekirdek kullanmaya ve Windows / kuvvete yapması gerektiğini kandırmak anlamına şey yoktur. İki adet tek iş parçacıklı uygulamanız varsa, Windows'a her birinin ayrı bir iş parçacığı / çekirdek kullanmasını söyleyebilirsiniz. bir program tarafından azami derecede kullanılmalıdır). Yani evet, bu ayarı gerçekten kullanabilirsiniz, ancak çoğu insanın bilmeyeceği / farkına varamayacağı / ihtiyaç duymayacağı özel bir senaryodur.
Ağustos'ta Synetech

2
İki tek iş parçacıklı uygulamanız varsa, Windows her birini farklı bir iş parçacığında / çekirdeğinde çalıştıracak ve yakınlığı ayarlamadan% 100 CPU kullanımı elde edeceksiniz. Test etmek için 4 çekirdekli makinemde tek bir iş parçacıklı programın 4 örneğini çalıştırdım ve% 100 CPU kullanımı aldım. Windows, CPU'ları verimli bir şekilde zamanlayacak kadar akıllıdır.
shf301

Sanırım sisteme ve / veya Windows sürümüne bağlı. Her iki işlemin de her iki çekirdeğe ayarlandığı ve manuel olarak CPU'yu en üst düzeye çıkardığı (XP) her iki çekirdeği de% 50-75 üzerinde gezdirdim.
Synetech

@Synetech: Bu neredeyse imkansız görünüyor. İki süreci de her zaman aynı anda çekirdekten çekirdeğe taşımalıydı.
David Schwartz

Bunun için bir başka geçerli kullanım durumu: Mevcut tüm CPU'ları kullanabilen ve diğer programların iyi çalışmasını engelleyebilecek ve / veya işletim sisteminin kullanıcı girişine çok yavaş yanıt vermesini engelleyebilecek bir uygulama vardır. Bu durumda, birisi böyle bir uygulamayı yalnızca bazı CPU'larla sınırlamaya karar verebilir. Bir geliştirici olarak, CPU yoğun uygulamalarımı profillendirirken bu özelliği sık sık kullanıyorum, çünkü profilleme işlemi CPU gerektiriyor.
Eyal Roth

2

Yakınlık ayarı, bu işleme hangi işlemcilerin çalışmasına izin verildiğini bildirir.

Bazı niş durumlarda çok yararlı olsa da, ortalama bir kullanıcı muhtemelen onunla uğraşmamalıdır.

Örneğin, bir işlemin kendi çekirdeğinin çalışmasına izin verilmişse, bu 70 pencere yardımcı programı kendi zaman diliminde işlemciyi sürekli olarak kesip yığın halinde değiştirmeden gerçek zamanlı olarak (neredeyse) çalışabilir. Gerçek zamanlı uygulamalar, çok işlemcili / çok çekirdekli sistemler sahneye çıkmadan pencerelerin asla yapamayacağı bir şeydi, çünkü işletim sistemi sürekli olarak uygulamayı kendi amaçları için kesintiye uğratacak / görev değiştirecektir. Artık bu, sistemdeki diğer tüm uygulamaların bu işlemciyi kullanmasını engellerken, gerçek zamanlı uygulamayı bir işlemci izole ederek aşılabilir. Bu çok niş bir konudur, ancak (gerçek) uçuş simülatörleri, fabrika otomasyonu ve kontrol geri bildirim sistemleri gibi sistemler çalışmak için gerçek zamanlı mimariye bağlıdır.

İşlemci yoğunluklu uygulamalar (VM'ler gibi) kendi çekirdeğine izole edilebilir, böylece sisteminizin geri kalanını taramaya getirmeden kullanabilirsiniz. Teorik olarak, çıplak metal hipervizör etkileşimini destekleyen bir işlemci üzerinde çalışan bir hipervizör, kendi başına çalışan bağımsız işletim sistemine eşit olan işlemci performansına ulaşabilir (eksi işletim sistemini çalıştırmak için gerekli olan işlemci eksi). Tabii ki, pratikte, kendi izole çekirdeği / işlemcisi üzerinde çalışan bir VM'nin bile ana bilgisayar işletim sisteminden ana bilgisayardan az miktarda ek yükü kabul etmesi gerekecektir.

Akıdaki büyük miktarda veriyi işleyen uygulamalar için, uygulamayı kendi işlemcisine ayırmak (ve muhtemelen birden fazla çekirdeği kullanmak) önbellek değişimini azaltacaktır.

Birden çok işlemciye yayıldıklarında bozulan eski uygulamalar, sorunu gidermek için etkili bir şekilde bir çekirdek / işlemci ile sınırlı olabilir.

Belirli bir uygulamada performans ölçümleri yapıyorsanız, işlemi izole edemediğiniz sürece farklı sistemlerde tutarlı sonuçlar elde etmek neredeyse imkansızdır, aksi takdirde işletim sisteminin uygulamanıza ne kadar süre verdiğini kontrol edemezsiniz. Çoğu insan, çalışma zamanı performansını ölçmenin iyi sonuçlar vermediğini kabul eder, ancak bu insanlar OS müdahalesinin (sonuçları bu kadar tutarsız hale getirir) yakınlık kullanarak sınırlı olabileceğini hiç düşünmemişlerdir.

Afinitenin hayati olduğu birçok durum vardır, ancak ne olduklarını bilmiyorsanız, muhtemelen buna ihtiyacınız olmayacaktır.


Afiniteyi pek çok kişinin düşündüğünden daha az kullanışlı kılan şey şudur: proses yakınlığınızı mevcut CPU'ların bazı alt kümelerine ayarlamak. bu CPU'lardan başka hiçbir şeyi kapatmaz. Bunu yapmak için, sistemdeki diğer tüm işlemlere gitmeniz ve bunları kendiniz için istediğiniz CPU'dan uzak tutmanız gerekir. Bu neredeyse hiç pratik değildir.
Jamie Hanrahan

Üçüncü taraf yazılımları kullanmak mümkündür . MS neden bu işlevselliği varsayılan olarak içermiyor?
Evan Plaice

Çünkü yazdığım gibi, hepsi bu kadar kullanışlı değil. Ve yanlış kullanıma çok eğilimlidir. Aslında, afinite ile çok "yaratıcı" olmanın olağan sonucu, aksi halde işlerin yolunda gitmemesidir. Genellikle bir iş parçacığı üzerinde tercih edilen CPU olduğunu düşündüğünüz şeyden başka bir şey çalıştırmak daha iyidir (aksi takdirde boşta olan CPU'lara erişimi reddetmek için aptalca bir şekilde ayarladıktan sonra). Windows'un varsayılan "ideal işlemcisi" ve "önceki işlemci" mekanizması, benzeşme maskesinin bu tür künt aracı olmadan iyi bir önbellek tutarlılığı sağlar.
Jamie Hanrahan

2

Bu, bazı senaryolarda çok kullanışlı bir özelliktir. Diyelim ki boşta ya da agresif bir şekilde her işlemcinin% 100'ünü birkaç dakika boyunca yakalama, arama yapma, derleme vb. Yapma eğiliminde olan çok iş parçacıklı bir uygulamanız var. Bu uygulamaya "tutulma" diyelim.

Ayrıca, bu uygulama üzerinde çalışırken, mütevazı işlemci gereksinimleri olan, ancak aslında gerçek zamanlı uygulamalar olan bir dizi başka uygulamaya sahip olduğunuzu da varsayalım. Örneğin, Eclipse kullanırken ve rastgele sürümleri başlatırken veya gwt derlemeleri yaparken, bilgisayarınızı bir tarayıcı penceresinde müzik akışı yapmak veya araştırma yapmak için de kullanırsınız (örneğin, bir derleme sorununun nedenini araştırmak) . Elbette, müziğiniz atlanırsa veya tarayıcınız yanıt vermezse ölmezsiniz, ancak can sıkıcıdır.

Afinite yapmanıza izin veren şey, cpu yeme uygulamanızı 7/8 çekirdeğe sınırlamaktır, böylece herkesin nispeten kullanılmayan bir cpu'ya erişimi garanti edilir ve bilgisayarınızdaki her şeyin kullanılabilirliği için sürekli olarak kekemelik ve kesintilerle uğraşmanız gerekmez. tutulma taşlanırken.


Bu durumda CPU domuz işleminizi düşük bir önceliğe ayarlamak çok daha iyi olur.
Jamie Hanrahan

1

Daha yüksek öncelik, bir görevin işlenmesinin düşük öncelikli görevlere göre avantajlı olacağı anlamına gelir. Çok duyarlı olmanız gereken bir uygulama çalıştırıyorsanız ve örneğin bir takım etkileşimli olmayan diğer işlemler varsa, öncelikler yüksek öncelikli işleminizde daha iyi bir deneyim sağlamanıza yardımcı olabilir.

Örneğin: Windows Vista'dan beri, Windows Media Player, ortam dosyalarının düzgün ve sürekli oynatılmasını sağlamak için otomatik olarak daha yüksek bir önceliğe sahiptir ve varsayılan olarak diğer işlemlerin CPU zamanının yalnızca% 20'si kullanılabilir. Bu sadece önceliklerin ne yaptığını anlamanıza yardımcı olacak bir örnektir. ( Medianet öncelikleri hakkında daha fazla bilgiyi Technet'teki Vista'da bulabilirsiniz .)

Yumuşak veya sert yakınlık, işlem hızını artırabilir çünkü CPU önbelleğinde, bir işlem daha önce kesildiğinde ve daha sonra yeniden başlatıldığında işlemde kalıntılar kalabilir.


Tatlı teşekkürler! Öyleyse afinity kullanmak için iyi bir rehber nedir?
James Mertz


Afinite kullanımı için iyi bir rehber: "Yapma".
Jamie Hanrahan

"Diğer işlemler için yalnızca% 20 CPU zamanı" doğru bir açıklama değildir. Gerçek uygulama, multimedya sınıfı zamanlayıcısını seçen bir iş parçacığının , gerçek zamanlı öncelik sınıfındaki her zamanlama aralığının% 80'ine kadar çalışmasına izin verilmesidir . Mutlaka bu kadar çok kullanması gerekmiyor ve eğer kullanmıyorsa. diğer dişler için% 20'den fazla mevcut olacak.
Jamie Hanrahan

1

Bunun mükemmel bir örneği, eski bilgisayar oyunları (veya başka bir yazılım), özellikle de 32 bit oyunlar (uygulamalar) modern bir 64 bit bilgisayarda taklit edildiğinde. Eski oyunların benzeşimini sadece dört çekirdekli olarak ayarlayarak, inatçı oyunların başlamasını sağlamak için çökmelerden kaçınılabilir. OLD oyunları, video düzenleyicileri ve donanım hızlandırmalı grafik yazılımı veya CAD yazılımı tarafından kullanılan bazı oluşturma motorları dörtten fazla CPU çekirdeğini anlamıyor ve başlatıldığında çökecek.

Ben sadece bunu göndermek, bana google 'kieseyhow' bulmak için bir hesap oluşturmuyorum

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.