Visual Studio 2017-Node.JSサーバープロセス-オフにしますか?


132

私はVisual Studio 2017でASP.NETアプリに取り組んでおり、Node.JS:サーバー側のJavaScriptプロセスが1.3GBから1.8GBのメモリで実行されていることに気付いています。私のIISワーカープロセスは、VS 2015での通常のサイズです。

私のアプリにはNode.JSライブラリが含まれていません。このNode.JS:サーバー側のJavaScriptプロセスをオフにする方法がわかりません。それは、私が使い物にならなかったもののために、あまりにも多くのメモリを消費しています。

VS 2017をアンインストールしてVS 2015に戻す以外に、これを強制終了する方法はありますか?

ここに画像の説明を入力してください

タスクマネージャーでメインプロセスを強制終了してもVSには何の影響もありませんが、[詳細]タブに移動して個々の実行中のプロセスを強制終了すると、Visual Studioがクラッシュします。プロセスを終了してローカルWebページを実行した後に何が起こったかのビデオを撮りました(品質が悪いため、画像サイズが2MBに制限されています)。

ここに画像の説明を入力してください


1
TypeScriptを使用していますか?
SLaks 2017年

少量使用しています。
Ryan Ternier 2017年

私はそのプロセスを終了しましたが、悪影響はありませんでした。WebコンパイラはそれなしでLESSファイルをコンパイルします。
グレンリトル

@GlenLittleそれはうまくいきますが、猫のように...戻ってきました。それが最初にインストールされたものであり、常に実行されているのだろうかと思います。VS2017をラップトップにインストールしたところ、サーバーをインストールするオプションが表示されました。これをテストしたら更新します
Ryan Ternier 2017年

これについてフィードバック項目を提出できますか?内部でNodeを使用するWeb開発ツールにはいくつかの異なる機能(JSLint / CSSLint / etcなど)が含まれている可能性があります。これらは、TypeScriptやNodeだけでなく、あらゆるWebプロジェクトに表示されます。
ジミー

回答:


183

ツール>オプション>テキストエディター> JavaScript / TypeScript>言語サービス...

[新しいJavaScript言語サービスを有効にする]をオフにします。

これにより、NodeJSプロセスが開始されないようです。


19
このソリューションは役に立ちました。賛成する必要があります。ただし、これを有効にするにはVisual Studioを再起動する必要があります。
マッド2017年

14
私はこれを行い、VS2017を再起動しましたが、VS2017の起動時に「Node.js:Server-side JavaScript」の起動を妨げることはありませんでした。私のマシンでは800MBを消費し、Chromeではデバッグできなくなりました。
Bill

1
ここで同じ問題@Bill-ただし、Gabrielの回答に従ってTypeScript拡張機能を無効にすると、ソートされたようです。
2017年

1
なんてこったい?なぜそれがテキストエディタの設定で行われているのですか?:P
Sнаđошƒаӽ

3
これは私のメニューのオプションではありません
BradLaney

29

私はこの問題についてフィードバックを上げました:

https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html

MSチームから返信がありました-彼は私にこの投稿を案内しました:

https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-sumption-to.html?childToView=27629#comment-27629

node.exeプロセスにはコマンドラインがあります。 ここに画像の説明を入力してください

効果的に私は言われた:

VS 2017では、JavaScriptにいくつかの機能が実装されています。Node.jsは、そのJavaScriptを実行するためにVisual Studioによって使用されます。とりわけ、Nodeは、ユーザーがTypeScriptまたはJavaScriptを編集しているときに、フォーマットおよびインテリセンスサービスを提供するコードを実行するために使用されます。これはVS 2015からの変更点です。

それは私の質問に答えますが、別のことを明らかにします-JavaScriptファイルにインテリセンスを提供するために1.4GBのメモリが必要なのはなぜですか...またはこれはVSに組み込まれているソリューションの1つであり、使用するメモリが少ないため、 32ビットプロセスの2GB(4GB)の制限に達していませんか?質問質問質問。


実際、Intellisenseなどの特定のものを別のプロセスに遅延させ、32ビットプロセスごとにRAMを増やすことで、メインのVSプロセスの応答性を高め、パフォーマンスを最適化することが重要です。しかし、この場合は問題ではありません。私が見つけたのは、より多くのソースコードファイルを開いてIntellisenseを有効にすると、Nodeがより多くのメモリを消費することです。メモリが不足している場合は、Intellisenseやその他の機能を無効にしてみてください。
user1306322

2
それは私にとって逆の効果をもたらし、VS2017をとても怠惰なものにしたので、私はVS2015に戻ります。MSがIntellisenseと同じくらい簡単なことをするためにサードパーティの外部フレームワークを使用しなければならないのは不思議です。それは常に彼らの強みの1つでした...そして今?TypeScriptとNode.jsを無効にしたので、Chrome VS2017だけを見るとハングアップすることがあるので、場合によっては再起動する必要があります。少なくとも今のところ、FirefoxとVS2015に話を戻します。そして、これはi10、16GM RAM、およびWin10 ProでのすべてのSSDセットアップにあります。ショッキング。
ネヴィル

ここで参照されている投稿によると... TypeScript拡張機能を無効にすることは、少なくとも私にとっては今のところ回避策です。[ツール、拡張機能、アップデート]をクリックし、「TypeScript」を検索して無効にします。Visual Studioを再起動します。
pat capozzi 2017年

まあ、それはIntellisenseが地獄に行った理由を説明します。
アンディ

19

Visual StudioでTypeScriptサポートを無効にする必要があります。

ツール>拡張機能と更新> Microsoft Visual StudioのTypeScript>無効化

その後、Visual Studioを再起動するだけで問題ありません。


1
この手順を実行した後も実行中
Jervie Vitriolo 2017年

1
まだ実行されています。これは何もしませんでした。
BradLaney 2017

16

Ryan Ternierの答えは、正しい方向にあると私が信じていることを私に示しました。彼のリンクをたどる(https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-sumption-to.html?childToView=27629#comment-27629)をボーデンケリーの答えが得られました、受け入れられた答えの真下。

これがボーデンケリーの答えです。

表示されているノードプロセスは、JavaScript言語サービスを強化しています。このプロセスは、JSファイル、TSファイル、またはJS / TSが含まれているファイル(html、cshtmlなど)を編集するときに表示されます。このプロセスは、IntelliSense、コードナビゲーション、書式設定、およびその他の編集機能を強化するものであり、プロジェクトのコンテキスト全体を分析することで実現します。プロジェクトに多数の.jsファイルがある場合、これは大きくなる可能性がありますが、問題は、分析されているライブラリファイルが多いことです。デフォルトでは、プロジェクト内のすべての.js / .tsファイルがスキャンされます。ただし、この動作をオーバーライドして、コードにのみ焦点を当てるように言語サービスを調整できます。これを行うには、次の設定でプロジェクトルートにtsconfig.jsonを作成します。

    {
    "compilerOptions": {
        "allowJs": true,
        "noEmit": true
    },
    "exclude": [
        "wwwroot/lib" //ignore everything in the lib folder (bootstrap, jquery, etc)
        // add any other folders with library code here
    ],
    "typeAcquisition": { 
        "enable": true,
        "include": [
            "bootstrap",
            "jquery"  //list libraries you are using here
        ]
    }
}

すべてのスクリプトライブラリが含まれているフォルダーをtsconfig.jsonファイルに追加すると、再び良好な状態でした。


前の答えで私の石鹸の箱が鳴った後、これはその日を救ったようです!!! そのような単純なことはまだあいまいであり、VS2017との戦いに3日かかっただけで、ようやくこれを見つけました!
ネヴィル

このファイルを追加すると、プロジェクトをビルドしたときにあらゆる種類のTypeScriptエラーが発生しました。それを削除すると、エラーはなくなりました。
John81

4

これまでで最も汚い回避策:名前を変更するだけです ServiceHub.Host.Node.x86.exeです。それ以来、私を悩ませていません。実際に必要な場合は、名前を変更してください。

Adobe Photoshopでも同じトリックが機能し、通常のワークフローではまだ発見していない何らかの理由でNodeも実行されます。


結局...

名前を変更して、引き続き機能することを期待することはできません。誰かわかったね!

どうやら、この名前変更のトリックは、VSプロセスを一時停止してノードを強制終了してから、VSを再開した場合にのみ機能します。Node exeファイルの名前を変更してVSを起動しようとすると、「不明なハードエラー」でプロジェクトを開くとクラッシュします。また、既にロードされているプロジェクトで作業しているとき、上記のメソッドとプロパティの遅延参照カウンターは機能しません。

したがって、ノードのプロセスを一時停止し、Windowsのページングでexeの名前を変更せずにメモリをRAMからハードドライブにスワップして、名前を変更する手間をかけずに後でVSを再起動できるようにしてもかまいません。あなたが結果を受け入れて喜んでいるならば、それはそうです。


残念ながら、ノードプロセスが応答しないかどうかを検出し、代わりに新しいプロセスを起動するコードがいくつかあると思います。私はVSコードのその部分に精通していませんが、それが私にそれが説明された方法です。
ジミー

私はいつものアイデアのように力で奪って、あなたは私が何を意味するか知っている... ;-)
Sнаđошƒаӽ

3

プロジェクトがnodejsの重みを軽減するのに役立つもの:ツール>オプション>プロジェクトとソリューション> Webパッケージ管理で使用されているノードバージョンを、インストールされている64ビットバージョンに再割り当てします。Studioは引き続きtsserver.jsインスタンスの内部ノードを起動しますが、プロジェクト内のすべてのtypescriptはデフォルトで提供されたバージョンになります-これは私に直接役立ちました。

また、言語サービスがダウンしているのを見つけたときにtsconfig.json、リポジトリとして使用されているディレクトリの上にある単純なものを使用して発見し、に指定しskipLibCheck: true、node_modulesを除外に追加しました-サービスに沿って非常に役立ち、1つのファイルが下にあるすべてのフォルダーを実行します直接のプロジェクト参照に関係なく。PS-JavaScriptインテリセンスのサポートが必要な場合は、allowJs: trueおよびnoEmit: trueオプションを設定してください。

最後に、[ツール]> [オプション]> [テキストエディター]> [Javascript / Typescript]> [プロジェクト]の[ Typescriptオプション] で、プロジェクトの一部ではない Typescript ファイル自動的にコンパイルすることがチェックされていないことを確認します。ノードまたはタイプスクリプトを使用します。

これらは完全なものではありません。それぞれが正確なボトルネックを見つける必要がありますが、これらは私と私のチームのために多くの場合うまくいったことがわかりました


これでうまくいきました。「C:\ Program Files \ nodejs」(以前にNodeJSを手動でインストールした場所)をこのリストの一番上に追加し、Node.jsプロセスのCPU負荷が50〜60%から0%になりました。
アンディニル2018年

1

2017年5月10日-Visual Studio 2017バージョン15.2(26430.04)リリースでハイメモリ消費が修正されたことに注意してください。

リリースノートはこちら:https : //www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes

ここでの修正に関する特定のメモ:https : //developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-sumption-to.html


2
ここで15.2(26430.16)を実行すると、多分、ばかばかしいほどに修正されました-ハイメモリ消費の問題が、それをハイメモリ消費にダウングレードするようにのみ管理されていました:)
PJUK

1
同意した。問題は、そもそも不十分に書かれたnode.jsが原因です(その「オブジェクト」関数は何度も何度も複製されます)。そして、JSの欠点にパッチを当てるフレームワークは、常に物事を遅くします。これは、Linuxの開発者がWindows用に開発しているときに起こります-非常に複雑で複雑な混乱です。
MC9000 2017

この問題をgithub.com/aspnet/JavaScriptServices/issues/1298で報告しました。この問題は2015年にVS 2015でJavaScriptプロジェクトを使用して確認しましたが、問題はさらに悪化しています。
素晴らしい世界

2017年に2
GB

私のために修正されていません。バージョン15.6.6でもまだ大量のメモリを消費している
John81

0

VS Codeの言語サービスを無効にするには、拡張機能に移動し、組み込みの拡張機能でフィルター処理して、TypeScript / Javascript言語サービスを無効にします。

VSコードのノードサービスがサーバーを約100万回クラッシュした後、ようやくこれを発見しました。これがドキュメンテーションを見つけるのがとても難しかったことをイライラさせます。

組み込みのts / js言語サービス拡張を無効にする


0

私の場合、ボットがnode.jsプロセスを強制終了することを望んでおり、Visual Studio 2019で実行されるNode.JsプロセスのCPU消費を下げるために次のことを行いました。

  • フォルダ「Program Files(x86)/ MicrosoftSDK / TypeScript」を削除しました
  • 走る npm rebuild fsevents
  • Chromeブラウザでオフにした:設定-システム-実行中のバックグラウンドアプリ...

今ではずっと良くなっているようです。しかし、100%不快ではありません。

これが誰かにも役立つことを願っています。がんばれ!:-)

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