Powershell açmak / yanıtlamak çok yavaş


12

PowerShell 3.0'ı Windows 7 64 bit üzerinde çalıştırırken sorun yaşıyorum. Çalıştırırken açmak / başlatmak çok uzun zaman alıyor. Ayrıca hemen hemen her şeye yanıt olarak oldukça durgun.

Bunun, profilimin belgelerimde depolanması ve belgelerim klasörünün ağımızla senkronize olmasından kaynaklanabileceğine inanıyorum.

Ağ yerine yerel olarak kullanabilmem için profilimin yerini değiştirebilmemin bir yolu var mı?


1
benim için de yavaş ve profilim doğrudan sürücü erişimi. ayrıca bir kez okunur, işletim sistemi tarafından önbelleğe alınır ve başlatmadan sonra kapatılır, böylece ağ veya hiçbir şey etkilemez. Bu sadece MS tekerleği yeniden yapmak için kötü bir girişim, ama yine kare.
v.oddou

Yanıtlar:


17

PowerShell, .NET Framework'e güveniyor , bunu güncellemeyi deneyebilirsiniz.

Bu komut dosyası hızımı da artırdı

$Env:PATH = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
[AppDomain]::CurrentDomain.GetAssemblies() | % {
  $pt = $_.Location
  if (! $pt) {continue}
  if ($cn++) {''}
  $na = Split-Path -Leaf $pt
  Write-Host -ForegroundColor Yellow "NGENing $na"
  ngen install $pt
}

1
Teşekkür ederim! Bu senaryoyu çalıştırdıktan sonra ne büyük bir fark.
WeSam Abdallah

3
Bu ne işe yarıyor?
Pureferret

2
ngen.exe yükleyin:Generate native images for an assembly and its dependencies and install them in the Native Images Cache. If /queue is specified compilation job is queued up. If a priority is not specified, the default priority used is 3.
VertigoRay

Ben… şaşırdım ve etkilendim :-)
Chris F Carroll

1

NGEN hakkında konuşan yukarıdaki cevap, başlangıç ​​zamanımı 30 saniyeden 5 saniyeye düşürdü.

Bununla birlikte, birkaç saniye bekledikten sonra Ctrl-C'ye vurmanın beni bir isteme götürdüğü durumlar da gördüm ve zaten yukarıdaki NGEN hile yaptım ve bu durumda, beni yavaşlatan senaryolarım olduğundan şüpheleniyorum.

30 saniyeden uzunsa ve yukarıdaki NGEN numarasını zaten denediyseniz, en yaygın neden kişisel ve sistem profili powershell komut dosyalarınızın başlaması için uzun zaman almasıdır. 10 saniyeden daha kısa bir gecikme hakkında şikayet ediyorsanız, muhtemelen .net başlatmak yavaştır.

Bir VM'deyseniz ve VM ana bilgisayarı tamamen hogtied ve çoğu aşırı provizyonlu ve yetersiz kaynaklanmış VM ortamları gibi IO'ya bağlıysa, o zaman budur.


0

Powershell profilinin saklanabileceği birkaç farklı varsayılan yer vardır.

  • İlk konum, global konumdur ve tüm kullanıcıların özelleştirilmiş bir Powershell profiline sahip olmasını istediğinizde yararlı olacaktır. Bu profil,

    C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
    
  • İkinci konum yerel profil içindir ve her kullanıcı hesabına özgüdür. Bu dosya genel yapılandırma dosyasını geçersiz kılar ve

    C:\Username\My Documents\WindowsPowerShell\Profile.ps1
    

Test olarak global Powershell profilini değiştirmeyi deneyin (system32'de bulunur) ve bunun işleri hızlandırıp hızlandırmayacağını görün. Bunu yaparsa, yavaşlığın bir şekilde ağdan kaynaklandığını bileceksiniz ve oradan ileri gidebilirsiniz.


0

Son zamanlarda, ikili bir PowerShell modülü geliştirirken de benzer bir sorun yaşadım. Konsolum neredeyse her şeye yanıt olarak son derece yavaştı. Steven Penny'nin senaryosu benim için çalıştı, ancak sadece PowerShell örneği için. Senaryosunda neler olduğunu gerçekten anlamadım; bu yüzden problemimin nerede olduğunu görmek için satır satır gittim.

Sonunda benim yolumun çevresel değişkeni oldu. Yol değişkenimde UNC yol dizesi vardı ve gecikme neden oldu, çünkü PowerShell her yürütme için bağlantıyı açacak / kapatacak (yani enter tuşuna her bastığınızda).


2
UNC nedir? Nasıl düzelttin?
Tomáš Zato - Monica'yı eski durumuna döndür

1
@ TomášZato - Evrensel Adlandırma Sözleşmesi (UNC), ileri veya geri eğik çizgiler içeren bir yoldur. Bu yorumun 4 yıl geç olduğunu anlıyorum, bilmek isteyeceğinizi düşündüm, çünkü kimse sorunuzu cevaplamaktan rahatsız olmadı. Yazarın UNC yolunu sistem değişkeninden kaldırdığını varsayıyorum.
Ramhound

@Ramhound Teşekkürler!
Tomáš Zato - Monica
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.