PowerShellの読み込みはCMDよりはるかに遅くなります。PSスタートアップを最適化できますか?[閉まっている]


3

実行するとCMD.exe、ほぼ瞬時に起動します。実行PowerShell.exeしてもまったく同じエクスペリエンスは提供されません。PowerShellの起動の待機時間は、数秒から数秒以上の範囲です。

なぜこれらはそんなに違うのですか?PowerShellの起動時間を最適化するためにできることはありますか?


Powershellがシステムに高速でロードされます(1秒未満)。PSにモジュールまたはスナップインがインストールされていますか?これを複数のコンピューターで見つけますか、それとも1つだけですか?システムに他の問題(ディスクチェックなど)がないことを確認しましたか?
Ƭᴇcʜιᴇ007

2
PowerShellを使用したすべてのシステムでこれを経験しました。ほとんどの場合、それは約2秒以下の遅延ですが、それより長い場合もあります。私はまだストップウォッチに入れていませんが、これはまさにそれがどのように感じるかです。いずれにせよ、それはCMDよりも読み込みが著しく遅いです。
イッツィ

システムに両方をロードした後、cmdには2400Kのワーキングセットがありましたが、PowerShellには35964Kのワーキングセットがありました。7200rpmディスクを搭載したi5では、起動時間に目立った違いはありませんでした。PowerShellの使用頻度が低い場合、Windowsはそれをプリフェッチしていない可能性があります。PowerShell ISEは2倍のサイズであり、私はあまり頻繁に使用しないため、初めて起動するには時間がかかります。
デビッドマーシャル

また、PowerShellは基本的に任意のCLRコードを呼び出すことができるため、.NETフレームワークをロードする必要があることに注意してください。これは、単なる "ネイティブ"コマンドインタープリターではありません。基本的には.NETのスクリプト環境です。
-allquixotic

これが、PowerShellが嫌いでコマンドプロンプトを使用し続ける理由です(まあ、構文の遅さと不快さ、そして一般的な不親切さ)。
Synetech

回答:


1

I / Oまたは処理を高速化する可能性のあるハードウェアアップグレードは別として、ユーザーとして、クローズドソースオペレーティングシステム上のクローズドソースプログラムを「高速化」するために合法的に変更できることはほとんどありません。もちろん、全般的なパフォーマンスを向上させる「一般的な」トリックはたくさんありますが、これらはPowerShellを直接対象とするものではありません。例えば:

  • アクティブなウイルススキャナーを無効にするか、より高速なスキャナーを使用する
  • HDDのデフラグまたはカスタムデフラグツールの使用
  • SSDを使用してアクセス時間を短縮するか、ハードウェアRAIDコントローラーを使用して帯域幅を増やすか、または2つの組み合わせ
  • より高速のRAMを使用してメモリレイテンシを削減し、スループットを改善する
  • 全般的なパフォーマンスの向上とボトルネックの解消のために、新しいハードウェアプラットフォーム(Ivy Bridgeなど)を使用する
  • 不要なレジストリ値、一時ファイル、SxS構成、VS2003 / 2005からの不要なランタイム、起動時に起動するプログラムなどの発生するジャンクをクリアするために、OSを再インストールするか、さまざまな「クリーナー」プログラムを実行します。

これらはすべて、直接修正または改善するための制御が及ばない低速のプログラムを持つという一般的な問題に対する一種の「サイドチャネル攻撃」です。

PowerShellの起動パフォーマンスに直接影響を与える可能性があると考えられる唯一のものは次のとおりです。

  • 環境変数の量とサイズ。システムの[詳細設定]で環境変数を変更できます。
  • PowerShellの起動時に起動するように接続されているスクリプト。あなたがこれらを持っていないという事実を知らないなら、あなたはそれらを実際に持っているかもしれません、そしてそれらは明らかにスタートアップ時間に影響を与えることができます。

これらのいずれかがあなたの質問の答えかもしれませんが、そうでない場合は、上にリストした一般的なサイドチャネルのパフォーマンスに影響を与える要因は別として、PowerShellの起動パフォーマンスに影響を与える他の要因は知りません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.