Powershell rất chậm để mở / trả lời


11

Tôi gặp sự cố khi chạy PowerShell 3.0 trên Windows 7 64-bit. Phải mất một thời gian rất dài để mở / bắt đầu khi chạy nó. Nó cũng khá chậm chạp để đáp ứng với bất cứ điều gì.

Tôi tin rằng điều này có thể là do hồ sơ của tôi được lưu trữ trong tài liệu của tôi và thư mục tài liệu của tôi được đồng bộ hóa với mạng của chúng tôi.

Có cách nào để tôi có thể di chuyển vị trí hồ sơ của mình để tôi có thể đặt nó cục bộ thay vì qua mạng không?


1
nó cũng chậm đối với tôi và hồ sơ của tôi là truy cập ổ đĩa trực tiếp. Ngoài ra, nó được đọc một lần, được lưu trữ bởi hệ điều hành và đóng lại sau khi khởi động để mạng hoặc không ảnh hưởng gì. Đây chỉ là một nỗ lực kém của MS trong việc làm lại bánh xe, nhưng vuông, một lần nữa.
v.oddou

Câu trả lời:


17

PowerShell dựa trên .NET Framework , bạn có thể thử cập nhật.

Kịch bản này cũng giúp tốc độ của tôi

$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
Cảm ơn bạn! Thật là một sự khác biệt lớn sau khi tôi chạy kịch bản này.
WeSam Abdallah

3
Nó làm gì?
Pureferret

2
cài đặt 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

Tôi ngạc nhiên và ấn tượng :-)
Chris F Carroll

1

Câu trả lời ở trên nói về NGEN đã giảm thời gian khởi động của tôi từ hơn 30 giây xuống còn dưới 5.

Tuy nhiên, tôi cũng đã thấy các trường hợp nhấn Ctrl-C sau khi chờ vài giây sẽ đưa tôi đến dấu nhắc và tôi đã thực hiện thủ thuật NGEN ở trên và trong trường hợp đó, tôi nghi ngờ rằng các tập lệnh của tôi đang làm tôi chậm lại.

Nếu quá 30 giây và bạn đã thử thủ thuật NGEN ở trên, lý do phổ biến nhất là các tập lệnh quyền hạn hồ sơ cá nhân và hệ thống của bạn đang mất nhiều thời gian để bắt đầu. Nếu bạn phàn nàn về độ trễ dưới 10 giây, thì đó có thể là .net bắt đầu chậm.

Nếu bạn đang sử dụng máy ảo và máy chủ VM hoàn toàn bị ràng buộc và bị ràng buộc IO giống như hầu hết các môi trường VM được cung cấp quá mức và có nguồn lực hạn chế thì đó là điều đó.


0

Có một vài vị trí mặc định khác nhau mà hồ sơ Powershell có thể được lưu trữ.

  • Vị trí đầu tiên là vị trí toàn cầu và sẽ hữu ích khi bạn muốn tất cả người dùng có hồ sơ Powershell tùy chỉnh. Hồ sơ này nên được đặt trong

    C:\WINDOWS\system32\WindowsPowerShell\v1.0\Profile.ps1
    
  • Vị trí thứ hai dành cho hồ sơ địa phương và sẽ dành riêng cho từng tài khoản người dùng. Tập tin này ghi đè tập tin cấu hình toàn cầu và nên được đặt trong

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

Khi thử nghiệm, hãy sửa đổi cấu hình Powershell toàn cầu (nằm trong system32) và xem liệu điều đó có tăng tốc mọi thứ không. Nếu có, bạn sẽ biết sự chậm chạp nào đó là do mạng và bạn có thể tiến lên từ đó.


0

Gần đây, tôi gặp vấn đề tương tự khi phát triển mô-đun PowerShell nhị phân. Bảng điều khiển của tôi cực kỳ chậm để đáp ứng với hầu hết mọi thứ. Kịch bản của Steven Penny làm việc cho tôi, nhưng chỉ với mỗi phiên bản của PowerShell. Tôi không thực sự hiểu những gì đang diễn ra trong kịch bản của anh ấy; Vì vậy, tôi đã đi từng dòng một để xem vấn đề của tôi ở đâu.

Nó đã kết thúc với biến môi trường đường dẫn của tôi. Tôi đã có chuỗi đường dẫn UNC trong biến đường dẫn của mình và gây ra sự chậm trễ, vì PowerShell sẽ mở / đóng kết nối cho mỗi lần thực thi (tức là mỗi lần bạn nhấn phím enter).


2
UNC là gì? Làm thế nào bạn sửa chữa nó?
Tomáš Zato - Phục hồi Monica

1
@ TomášZato - Công ước đặt tên phổ quát (UNC) là một con đường chứa các dấu gạch chéo về phía trước hoặc phía sau. Tôi hiểu nhận xét này trễ 4 năm, hình dung bạn sẽ muốn biết, vì không ai từng bận tâm trả lời câu hỏi của bạn. Tôi cho rằng tác giả đã xóa đường dẫn UNC khỏi biến hệ thống của họ.
Ramhound

@Ramhound Cảm ơn!
Tomáš Zato - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.