Ich arbeite an einer ASP.NET-App in Visual Studio 2017 und bemerke einen Node.JS: Serverseitigen Javascript-Prozess, der mit 1,3 GB bis 1,8 GB Speicher ausgeführt wird. Mein IIS-Arbeitsprozess hat die normale Größe in VS 2015.
Meine App enthält keine Node.JS-Bibliotheken. Ich kann nicht herausfinden, wie dieser Node.JS: Serverseitige Javascript-Prozess deaktiviert werden kann. Es verbraucht zu viel Speicher für etwas, für das ich keine Verwendung habe.
Gibt es eine Möglichkeit, dies zu beenden, außer VS 2017 zu deinstallieren und wieder zu VS 2015 zu wechseln?
Das Beenden des Hauptprozesses im Task-Manager hat keine Auswirkungen auf VS. Wenn ich jedoch zur Registerkarte Details gehe und die einzelnen ausgeführten Prozesse beende, stürzt Visual Studio ab. Ich habe ein Video von dem aufgenommen, was passiert ist, nachdem ich den Prozess abgebrochen und meine lokale Webseite ausgeführt habe (Entschuldigung für die Qualität, SO begrenzte Bildgröße auf 2 MB):
quelle
Antworten:
Extras> Optionen> Texteditor> JavaScript / TypeScript> Sprachdienst ...
Deaktivieren Sie "Neuen JavaScript-Sprachdienst aktivieren".
Dies scheint zu verhindern, dass der NodeJS-Prozess gestartet wird.
quelle
Ich habe Feedback zu diesem Thema gegeben:
https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html
Ich habe eine Antwort von einem MS-Team erhalten - er hat mich auf diesen Beitrag verwiesen:
https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629
Der Prozess node.exe hat die folgende Befehlszeile:
Tatsächlich wurde mir gesagt:
In VS 2017 sind mehrere Funktionen in JavaScript implementiert. Node.js wird von Visual Studio verwendet, um dieses JavaScript auszuführen. Unter anderem wird Node verwendet, um den Code auszuführen, der Formatierungs- und Intellisense-Dienste bereitstellt, wenn ein Benutzer TypeScript oder JavaScript bearbeitet. Dies ist eine Änderung gegenüber VS 2015.
Es beantwortet meine Frage, bringt aber eine andere ans Licht - warum benötigen Sie 1,4 GB Speicher, um mich für JavaScript-Dateien zu sensibilisieren ... oder ist dies eine der Lösungen, die in VS integriert wurden, sodass weniger Speicher benötigt wird, damit dies nicht der Fall ist Die 2-GB-Grenze (4 GB) von 32-Bit-Prozessen nicht erreicht? Fragen Fragen Fragen.
quelle
Sie müssen die TypeScript-Unterstützung in Visual Studio deaktivieren:
Extras> Erweiterungen und Updates> TypeScript für Microsoft Visual Studio> Deaktivieren
Starten Sie danach einfach Visual Studio neu und Sie können loslegen.
quelle
Die Antwort von Ryan Ternier zeigte mir, was ich für die richtige Richtung halte. Das Folgen seines Links ( https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629 ) führte mich zu Bowden Kellys Antwort , direkt unter der akzeptierten Antwort.
Hier ist die Antwort von Bowden Kelly:
Nachdem ich den Ordner mit all meinen Skriptbibliotheken zur Datei tsconfig.json hinzugefügt hatte, war das Leben wieder gut.
quelle
Die schmutzigste Problemumgehung aller Zeiten: Benennen Sie das einfach
ServiceHub.Host.Node.x86.exe
in etwas anderes um. Hat mich seitdem nicht mehr gestört. Wenn Sie es tatsächlich benötigen, benennen Sie es einfach wieder um.Der gleiche Trick funktioniert in Adobe Photoshop, in dem Node aus irgendeinem Grund ausgeführt wird, den ich in meinem üblichen Workflow noch nicht entdeckt habe.
Es stellt sich heraus ...
Sie können es nicht einfach umbenennen und erwarten, dass die Dinge weiter funktionieren. Wer wusste!
Anscheinend funktioniert dieser Umbenennungstrick nur, wenn Sie den VS-Prozess anhalten und Node beenden und dann VS fortsetzen. Wenn Sie versuchen, VS mit umbenannter Node-Exe-Datei zu starten, stürzt es ab, wenn ein Projekt mit einem "unbekannten harten Fehler" geöffnet wird. Während der Arbeit an einem bereits geladenen Projekt funktioniert der verzögerte Referenzzähler über den Methoden und Eigenschaften nicht, da dies anscheinend davon abhängt, dass Node irgendwie vorhanden ist.
Daher ist es möglicherweise in Ordnung, den Knotenprozess einfach anzuhalten und Windows Paging seinen Speicher vom RAM auf die Festplatte übertragen zu lassen, ohne die Exe umzubenennen, damit Sie den VS später erneut starten können, ohne den Umbenennungsaufwand zu überwinden. Wenn Sie bereit sind, mit den Konsequenzen zu leben, dann ist das so.
quelle
Dies kann den Projekten dabei helfen, das Gewicht des Knotens zu verringern: Die unter Extras > Optionen> Projekte und Lösungen> Webpaketverwaltung verwendete Knotenversion wird einer installierten 64-Bit-Version neu zugewiesen . Studio startet weiterhin seinen internen Knoten für eine tsserver.js-Instanz, aber jedes Typoskript im Projekt verwendet standardmäßig die mitgelieferte Version - und dies hat mir aus erster Hand geholfen.
Als ich ein anderes Mal feststellte, dass der Sprachdienst nicht mehr funktioniert, stellte ich fest, dass
tsconfig.json
über den Verzeichnissen, die als Repositorys verwendet werden, ein einfaches Verzeichnis verwendetskipLibCheck: true
und node_modules zum Ausschließen angegeben und hinzugefügt wurden - eine enorme Hilfe für den Dienst, und eine Datei erledigt alle darunter liegenden Ordner es, unabhängig von direkten Projektreferenzen. PS - Wenn Sie weiterhin JavaScript Intellisense unterstützen möchten, stellen Sie sicher, dassallowJs: true
und eingestellt sindnoEmit: true
Option .Überprüfen Sie abschließend in den Typescript-Optionen unter Extras> Optionen> Texteditor> Javascript / Typescript> Projekt, ob das Kontrollkästchen Typescript-Dateien, die nicht Teil eines Projekts sind, nicht automatisch kompiliert wird, da dies auch Ressourcen für zusätzliche Projekte von Drittanbietern binden kann mit Knoten oder Typoskript.
Diese sind nicht narrensicher, jeder muss seinen genauen Engpass finden, aber ich habe festgestellt, dass diese häufig für mich und mein Team funktioniert haben
quelle
Ich möchte nur darauf hinweisen, dass der hohe Speicherverbrauch in der Version 15.2 (26430.04) von Visual Studio 2017, Version 15.2, behoben wurde.
Versionshinweise hier: https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes
Spezifische Hinweise zum Fix hier: https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html
quelle
Um Sprachdienste in VS Code zu deaktivieren, gehen Sie zu Erweiterungen, filtern Sie nach integrierten Erweiterungen und deaktivieren Sie den TypeScript / Javascript-Sprachdienst.
Ich habe dies schließlich entdeckt, nachdem der Knotendienst von VS Code meinen Server ungefähr eine Million Mal abgestürzt hat. Ärgerlich, dass es so schwer war, Dokumentation darüber zu finden.
quelle
In meinem Fall wollte Bot den Prozess node.js beenden und habe folgende Schritte unternommen, um den CPU-Verbrauch gegenüber Node.Js-Prozessen zu senken, die unter Visual Studio 2019 ausgeführt werden:
npm rebuild fsevents
Es scheint mir jetzt viel besser. Aber nicht 100% unglücklicherweise.
Hoffe das hilft auch jemandem da draußen. Viel Glück, Leute! :-)
quelle