programing

Visual Studio 2017과 관련된 Node.js 서버 프로세스를 끌 수 있습니까?

codeshow 2023. 10. 14. 10:46
반응형

Visual Studio 2017과 관련된 Node.js 서버 프로세스를 끌 수 있습니까?

ASP 작업 중입니다.Visual Studio 2017의 NET 애플리케이션에서 "Node.js: 서버측 자바스크립트" 프로세스가 1.3~1.8GB의 메모리에서 실행된다는 것을 알 수 있습니다.IIS 작업자 프로세스는 Visual Studio 2015의 일반 크기입니다.

제 어플리케이션에는 Node.js 라이브러리가 포함되어 있지 않습니다.Node.js: 서버측 자바스크립트 프로세스를 끄는 방법을 알 수 없습니다.내가 쓸모없는 것에 비해 너무 많은 기억을 소모하고 있습니다.

Visual Studio 2017을 제거하고 Visual Studio 2015로 다시 전환하는 것 외에 이 문제를 해결할 수 있는 방법이 있습니까?

Enter image description here

작업 관리자에서 주요 프로세스를 삭제해도 Visual Studio에서는 아무 영향도 주지 않습니다.그러나 세부 정보 탭으로 이동하여 실행 중인 개별 프로세스를 삭제하면 Visual Studio가 크래시됩니다.프로세스를 종료하고 로컬 웹 페이지를 실행한 후 발생한 일을 동영상으로 촬영했습니다(화질에 대해 죄송합니다. 이미지 크기가 2MB로 제한됨).

Enter image description here

메뉴 ToolsOptionsText EditorJavaScript/TypeScriptLanguage Service...:

새 JavaScript 언어 서비스 사용'을 선택 취소합니다.

Visual Studio

이는 Node.js 프로세스가 시작되지 않도록 하는 것으로 나타납니다.

이 문제에 대해 피드백을 제기했습니다.

Visual Studio 2017 - Node.js Server Process - 꺼짐?

마이크로소프트 팀으로부터 답변을 받았습니다. 그는 저에게 다음과 같은 게시물을 알려주었습니다.

Node.js 서버측 자바스크립트 프로세스가 메모리를 너무 많이 소비함

노드가.exe process에는 명령줄이 있습니다.

Enter image description here

사실상 다음과 같은 말을 들었습니다.

Visual Studio 2017에서는 자바스크립트로 여러 기능이 구현되어 있습니다.Node.js는 비주얼 스튜디오에서 해당 자바스크립트를 실행하는 데 사용됩니다.그 중에서도 Node는 TypeScript나 JavaScript를 편집할 때 포맷 및 IntelliSense 서비스를 제공하는 코드를 실행하는 데 사용됩니다.이것은 Visual Studio 2015에서 바뀐 것입니다.

Visual Studio에서 TypeScript 지원을 사용하지 않도록 설정해야 합니다.

메뉴 도구확장업데이트Microsoft Visual Studio용 TypeScript사용 안 함.

그 다음에 Visual Studio를 다시 시작하면 됩니다.

라이언 테르니에의 대답은 제가 생각하기에 올바른 방향을 가리켰습니다.그의 링크를 따라 저는 합격된 답변 바로 아래에 있는 보우덴 켈리의 답변으로 이끌었습니다.

다음은 보우덴 켈리의 대답입니다.

지금 보시는 노드 프로세스는 자바스크립트 언어 서비스에 전원을 공급하는 것입니다.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 파일에 추가하자 다시 삶이 좋아졌습니다.

을 으로 바꾸기만 됩니다.ServiceHub.Host.Node.x86.exe다른 곳으로 말입니다.그 이후로 전혀 신경 쓰이지 않았습니다.실제로 필요한 경우 이름만 다시 지정합니다.

Node.js를 실행하는 Adobe Photoshop에서도 동일한 트릭이 작동합니다. 어떤 이유에서인지 일반적인 워크플로우에서 아직 발견하지 못했습니다.


알고 보니...

이름만 바꾸고 일이 계속 진행되기를 기대할 수는 없습니다.누가 알았겠어요!

Visual Studio 프로세스를 일시 중단하고 Node.js를 종료한 후 Visual Studio를 재개하는 경우에만 이 이름 변경 트릭이 작동합니다.Node.js EXE 파일 이름이 변경된 Visual Studio를 시작하려고 하면 "알 수 없는 하드 오류"가 발생하는 프로젝트를 열 때 충돌합니다.

또한, 이미 로드된 프로젝트를 수행하는 동안 메소드와 속성 위의 게으른 참조 카운터가 작동하지 않을 것입니다. 왜냐하면 그것은 분명히 Node.js가 거기에 있는 것에 의존하기 때문입니다.

따라서 Node.js 프로세스를 일시 중단하고 Windows 페이징이 EXE 파일의 이름을 바꾸지 않고 메모리를 RAM에서 하드 드라이브로 스왑하여 나중에 Visual Studio를 다시 시작할 수 있도록 하여 이름을 바꾸는 번거로움 없이 Visual Studio를 다시 시작할 수 있습니다.만약 당신이 결과를 감수하고 살 의지가 있다면, 그것은.

프로젝트가 Node.js 가중치를 완화하는 데 도움이 될 수 있는 것은 도구옵션프로젝트솔루션Web Package Management 메뉴에서 사용하는 노드 버전을 설치된 64비트 버전으로 재할당하는 것입니다.Visual Studio는 tsserver.js 인스턴스에 대한 내부 Node.js 프로세스를 여전히 시작하지만, 프로젝트의 모든 TypeScript 코드는 기본적으로 제공된 버전으로 설정됩니다.

또한 언어 서비스가 다운되는 것을 발견했을 때 저장소로 사용되는 디렉토리 위에 있는 간단한 tsconfig.json 파일을 사용하는 것을 발견하고 다음을 지정합니다.skipLibCheck: true, 그리고 node_modules를 추가하여 제외합니다. 이는 서비스를 진행하는 데 큰 도움이 되었으며, 하나의 파일은 프로젝트의 직접적인 참조에 관계없이 그 아래에 있는 모든 폴더를 수행합니다.추신—JavaScript intellense support를 계속하려면,allowJs: true그리고.noEmit: true선택.

마지막으로 TypeScript Options(도구) → Options(옵션) → Text Editor(텍스트 편집기) → JavaScript/TypescriptProject(프로젝트)의 TypeScript 옵션에서 Node.js(노드.js) 또는 TypeScript(타입스크립트)를 사용하여 보조 타사 프로젝트에 대한 리소스를 연결할 수 있으므로 프로젝트에 포함되지 않은 TypeScript 파일을 자동으로 컴파일하도록 선택하지 않았는지 확인합니다.

이것들은 완벽하지 않습니다.각자가 정확한 병목현상을 찾아야 하지만, 저는 이런 것들이 저와 제 팀에 더 많이 도움이 된다는 것을 알게 되었습니다.

다만 2017-05-10 버전의 Visual Studio 2017(버전 15.2, 26430.04)에서 고메모리 소비가 수정되었다는 점에 주목합니다.

릴리스 노트는 Visual Studio 2017 버전 15.9 릴리스 노트에 있습니다.

수정에 대한 구체적인 참고 사항은 Node.js 서버측 자바스크립트 프로세스에서 메모리너무 많이 소모됩니다.

저의 경우 Node.js 프로세스를 kill하고 싶지 않았고, Node의 CPU 소모를 줄이기 위해 다음과 같은 작업을 했습니다.Visual Studio 2019에서 실행되는 Js 프로세스:

  • "Program Files(x86)/MicrosoftSDK/TypeScript" 폴더를 제거했습니다.
  • 나는 달립니다npm rebuild fsevents
  • Chrome 브라우저에서 이 기능을 껐습니다.설정-시스템-배경 앱 계속 실행...

지금은 훨씬 나아진 것 같습니다.하지만 안타깝게도 100%는 아닙니다.

Visual Studio Code에서 Language Services(언어 서비스)를 사용하지 않으려면 확장으로 이동한 다음 내장 확장을 필터링하고 TypeScript/JavaScript 언어 서비스를 사용하지 않도록 설정합니다.

저는 Visual Studio Code의 Node.js 서비스가 제 서버를 백만 번 정도 다운시킨 후에 마침내 이것을 발견했습니다.이것에 대한 문서를 찾기가 너무 어려워서 짜증이 났습니다.

Disable the built-in TypeScript/JavaScript language service extension

언급URL : https://stackoverflow.com/questions/42769106/can-i-turn-off-the-node-js-server-process-associated-with-visual-studio-2017

반응형