Powershell sangat lambat untuk membuka / merespons

11

Saya mengalami masalah menjalankan PowerShell 3.0 di Windows 7 64-bit. Dibutuhkan waktu yang sangat lama untuk membuka / memulai ketika menjalankannya. Ini juga cukup lamban dalam menanggapi apa saja.

Saya percaya ini mungkin karena fakta bahwa profil saya disimpan dalam dokumen saya, dan folder dokumen saya disinkronkan ke jaringan kami.

Apakah ada cara agar saya dapat memindahkan lokasi profil saya sehingga saya dapat memilikinya secara lokal alih-alih melalui jaringan?

czuroski
sumber
1
lambat bagi saya juga dan profil saya ada di akses drive langsung. juga dibaca sekali, di-cache oleh OS dan ditutup setelah startup sehingga jaringan atau tidak seharusnya tidak mempengaruhi apa-apa. ini hanya MS upaya yang buruk untuk mengulangi roda, tetapi persegi, lagi.
v.oddou

Jawaban:

17

PowerShell bergantung pada .NET Framework , Anda dapat mencoba memperbarui itu.

Script ini juga membantu kecepatan saya

$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
}
Steven Penny
sumber
1
Terima kasih! Apa perbedaan besar setelah saya menjalankan skrip ini.
WeSam Abdallah
3
Apa fungsinya?
Pureferret
2
instal ngen.exe: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
Saya… terkejut dan terkesan :-)
Chris F Carroll
1

Jawaban di atas yang berbicara tentang NGEN mengurangi waktu startup saya dari lebih dari 30 detik, menjadi di bawah 5.

Namun saya juga telah melihat kasus-kasus di mana menekan Ctrl-C setelah menunggu beberapa detik membuat saya cepat, dan saya sudah melakukan trik NGEN di atas, dan dalam hal ini, saya curiga skrip saya yang memperlambat saya.

Jika lebih dari 30 detik, dan Anda sudah mencoba trik NGEN di atas, alasan paling umum adalah bahwa skrip powerhell profil pribadi dan sistem Anda memerlukan waktu lama untuk memulai. Jika Anda mengeluh tentang penundaan kurang dari 10 detik, maka mungkin .net yang lambat untuk memulai.

Jika Anda menggunakan VM dan host VM benar-benar macet dan IO terikat seperti kebanyakan lingkungan VM yang kekurangan dan kekurangan sumber daya, maka itu saja.

Warren P
sumber
0

Ada beberapa tempat default berbeda yang dapat disimpan oleh profil Powershell.

  • Lokasi pertama adalah lokasi global dan akan berguna ketika Anda ingin semua pengguna memiliki profil Powershell yang dikustomisasi. Profil ini harus ditempatkan di

    C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
    
  • Lokasi kedua adalah untuk profil lokal dan akan spesifik untuk setiap akun pengguna. File ini mengesampingkan file konfigurasi global dan harus ditempatkan di

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

Sebagai uji coba modifikasi profil Powershell global (terletak di system32) dan lihat apakah itu mempercepat. Jika ya, Anda akan tahu bahwa kelambatan ini disebabkan oleh jaringan dan Anda dapat bergerak maju dari sana.

jmreicha
sumber
0

Baru-baru ini, saya memiliki masalah serupa ketika mengembangkan modul PowerShell biner. Konsol saya sangat lambat dalam menanggapi hampir semua hal. Script Steven Penny bekerja untuk saya, tetapi hanya per contoh PowerShell. Saya tidak begitu mengerti apa yang sedang terjadi dalam naskahnya; jadi saya pergi baris demi baris untuk melihat di mana masalah saya.

Akhirnya dengan variabel lingkungan jalur saya. Saya memiliki string jalur UNC di variabel jalur saya, dan penundaan itu disebabkan, karena PowerShell akan membuka / menutup koneksi untuk setiap eksekusi (yaitu setiap kali Anda menekan tombol enter).

Aaron Ray
sumber
2
Apa itu UNC? Bagaimana Anda memperbaikinya?
Tomáš Zato - Reinstate Monica
1
@ TomášZato - Konvensi Penamaan Universal (UNC) adalah jalur yang berisi garis miring ke depan atau ke belakang. Saya mengerti komentar ini terlambat 4 tahun, saya kira Anda ingin tahu, karena tidak ada yang pernah repot menjawab pertanyaan Anda. Saya akan menganggap penulis menghapus jalur UNC dari variabel sistem mereka.
Ramhound
@Ramhound Terima kasih!
Tomáš Zato - Pasang kembali Monica