Visual Studio 2017-Node.JS 서버 프로세스-해제 하시겠습니까?


132

Visual Studio 2017에서 ASP.NET 앱을 작업 중이며 1.3GB에서 1.8GB의 메모리에서 실행되는 Node.JS : Server-side Javascript 프로세스에 주목하고 있습니다. 내 IIS 작업자 프로세스는 VS 2015의 정상적인 크기입니다.

내 앱에는 Node.JS 라이브러리가 포함되어 있지 않습니다. 이 Node.JS : 서버 측 Javascript 프로세스를 끄는 방법을 알 수 없습니다. 내가 쓸모없는 것을 위해 너무 많은 기억을 먹고 있습니다.

VS 2017을 제거하고 VS 2015로 다시 전환하는 것을 제외하고 이것을 없애는 방법이 있습니까?

여기에 이미지 설명을 입력하십시오

작업 관리자에서 기본 프로세스를 종료해도 VS의 아무것도 영향을 미치지 않지만 세부 정보 탭으로 이동하여 개별 실행중인 프로세스를 종료하면 Visual Studio가 충돌합니다. 프로세스를 종료하고 로컬 웹 페이지를 실행 한 후 발생한 일에 대한 비디오를 가져 왔습니다 (품질이 좋지 않아 이미지 크기가 2MB로 제한되었습니다).

여기에 이미지 설명을 입력하십시오


1
TypeScript를 사용하고 있습니까?
SLaks

우리는 그것을 소량 사용하고 있습니다.
Ryan Ternier

나는 그 과정을 끝내고 아무런 부작용을 보지 못했다. 웹 컴파일러는 LESS 파일없이이를 컴파일합니다.
Glen Little

@GlenLittle 그것은 작동하지만 고양이처럼 ... 돌아왔다. 처음에 설치되어 있고 항상 실행 중인지 궁금합니다. 방금 lappy에 VS2017을 설치했으며 서버를 설치할 수있는 옵션을 제공했습니다. 테스트 할 때 이것을 업데이트하겠습니다
Ryan Ternier

이에 대한 피드백을 제출할 수 있습니까? 웹 개발 도구에는 여기에 관련 될 수있는 후드 (JSLint / CSSLint / etc 등) 아래에서 노드를 사용하는 몇 가지 기능이 있습니다. 이것들은 TypeScript 또는 Node뿐만 아니라 모든 웹 프로젝트에 나타납니다.
Jimmy

답변:


183

도구> 옵션> 텍스트 편집기> JavaScript / TypeScript> 언어 서비스 ...

'새 JavaScript 언어 서비스 사용'을 선택 취소하십시오.

이는 NodeJS 프로세스가 시작되지 못하게하는 것으로 보입니다.


19
이 솔루션은 도움이 되었어야합니다. 그러나이를 적용하려면 Visual Studio를 다시 시작해야합니다.
madd

14
VS2017을 다시 부팅했는데 VS2017을 시작할 때 여전히 "Node.js : 서버 측 JavaScript"가 시작되는 것을 막지 못했습니다. 내 컴퓨터에서 약 800MB를 사용하고 있으며 더 이상 Chrome에서 디버깅 할 수 없습니다.
Bill

1
@Bill과 동일한 문제-Gabriel의 답변에 따라 TypeScript 확장을 비활성화하면 정렬 된 것 같습니다.
Dunc

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- consumer-to.html? childToView = 27629 # comment-27629

node.exe 프로세스에는 다음 명령 줄이 있습니다. 여기에 이미지 설명을 입력하십시오

효과적으로 나는 들었다 :

VS 2017에서는 JavaScript로 여러 기능이 구현되었습니다. Node.js는 Visual Studio에서 해당 JavaScript를 실행하는 데 사용됩니다. 무엇보다도 Node는 사용자가 TypeScript 또는 JavaScript를 편집 할 때 형식화 및 인텔리전스 서비스를 제공하는 코드를 실행하는 데 사용됩니다. 이것은 VS 2015에서 변경된 것입니다.

내 질문에 대답하지만 다른 것을 밝힙니다-왜 JavaScript 파일에 지능을 부여하기 위해 1.4GB의 메모리가 필요합니까? 또는 VS에 내장 된 솔루션 중 하나이므로 적은 메모리를 사용하므로 32 비트 프로세스의 2GB (4GB) 제한에 도달하지 않습니까? 질문 질문 질문.


실제로 Intellisense와 같은 특정 프로세스를 다른 프로세스로 단순화하고 각 32 비트 프로세스마다 더 많은 램을 사용하여 기본 VS 프로세스의 응답 속도를 높이고 성능을 최적화하는 것이 중요합니다. 그러나이 경우에는 문제가되지 않습니다. 내가 찾은 것은 더 많은 소스 코드 파일을 열고 Intellisense를 활성화하면 노드가 더 많은 메모리를 소비한다는 것입니다. 실제로 메모리가 부족한 경우 Intellisense 및 기타 기능없이 비활성화 할 수 있습니다.
user1306322

2
그것은 나에게 반대 효과가 있었고 VS2017을 너무 게으르게 만들어서 VS2015로 돌아갑니다. MS가 Intellisense처럼 간단한 작업을 수행하기 위해 타사 외부 프레임 워크를 사용해야한다는 것은 비참한 일입니다. 그것은 항상 그들의 강점 중 하나였습니다 ... 그리고 지금? TypeScript와 Node.js를 비활성화했으며 Chrome VS2017이 멈추는 것을 보면 너무 자주 재부팅해야합니다. 적어도 지금은 Firefox와 VS2015로 돌아갑니다. 그리고 이것은 i7, 16GM RAM 및 Win10 Pro의 모든 SSD 설정에 있습니다. 충격적인.
Neville

여기에 언급 된 게시물에 따르면 ... TypeScript 확장 기능을 사용하지 않도록 설정하는 것은 적어도 나를 위해 해결 방법입니다. 도구, 확장 및 업데이트를 클릭하고 "TypeScript"를 검색하여 비활성화하십시오. Visual Studio를 다시 시작하십시오.
pat capozzi

이것이 Intellisense가 왜 지옥에 갔는지 설명합니다.
Andy

19

Visual Studio에서 TypeScript 지원을 비활성화해야합니다.

도구> 확장 및 업데이트> Microsoft Visual Studio 용 TypeScript> 비활성화

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


1
나는이 단계를 수행 한 후 계속 실행
Jervie Vitriolo

1
아직 실행 중입니다. 이것은 아무것도하지 않았다.
BradLaney

16

Ryan Ternier의 대답은 내가 옳은 방향이라고 믿는 것을 지적했습니다. 그의 링크를 따라 가다 consumer-to.html? childToView = 27629 # comment-27629)를 따라 Bowden Kelly의 답변으로 연결되었습니다. 허용 된 답변 바로 아래에 있습니다.

Bowden Kelly의 답변은 다음과 같습니다.

보고있는 노드 프로세스가 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 일 동안 마침내 이것을 찾았습니다.
Neville

이 파일을 추가하면 프로젝트를 빌드 할 때 모든 종류의 TypeScript 오류가 발생합니다. 그것을 제거하고 오류가 사라졌습니다.
John81

4

가장 더러운 해결 방법 : 그냥 ServiceHub.Host.Node.x86.exe다른 이름으로 바꾸십시오 . 그 이후로 나를 귀찮게하지 않았습니다. 실제로 필요한 경우 이름을 바꾸십시오.

Adobe Photoshop에서도 동일한 트릭이 작동합니다.이 작업은 아직 일반적인 작업 과정에서 발견하지 못한 이유로 노드를 실행합니다.


드러내다...

이름 만 바꾸고 계속 작동 할 수는 없습니다. 누가 알았 겠어!

분명히이 이름 바꾸기 트릭은 VS 프로세스를 일시 중단하고 노드를 종료 한 다음 VS를 다시 시작하는 경우에만 작동합니다. Node exe 파일 이름이 바뀐 상태에서 VS를 시작하려고하면 "알 수없는 하드 오류"가있는 프로젝트를 열 때 충돌이 발생합니다. 또한 이미로드 된 프로젝트에서 작업하는 동안 메소드와 속성 위의 게으른 참조 카운터가 작동하지 않습니다.

따라서 노드 프로세스를 일시 중단하고 exe의 이름을 바꾸지 않고 Windows 페이징에서 메모리를 램에서 하드 드라이브로 스왑하도록하면 나중에 이름 바꾸기 번거 로움없이 VS를 다시 시작할 수 있습니다. 그 결과로 기꺼이 살려고한다면 바로 그 것입니다.


불행히도 노드 프로세스가 응답하지 않는지를 감지하고 대신 새로운 프로세스를 시작하는 코드가 있다고 생각합니다. 나는 VS 코드의 그 부분에 익숙하지 않지만 그것이 나에게 설명 된 방법입니다.
Jimmy

나는 항상 강제박탈 한다는 생각을 좋아한다 . 당신은 내가 무슨 뜻인지 알 것이다 ... ;-)
Sнаđошƒаӽ

3

프로젝트가 nodejs 가중치를 완화하는 데 도움이되는 것 : 도구> 옵션> 프로젝트 및 솔루션> 웹 패키지 관리 에서 사용 된 노드 버전 을 설치된 64 비트 버전 으로 재 할당하는 것 입니다. Studio는 여전히 tsserver.js 인스턴스에 대한 내부 노드를 시작하지만 프로젝트의 모든 유형 스크립트는 기본적으로 제공되는 버전으로 설정되어있어 직접 도움이되었습니다.

또한 언어 서비스가 다운되는 것을 발견 tsconfig.json했을 때, 리포지토리로 사용되는 디렉토리 위의 간단한 것을 사용하여 발견 하고 to를 지정하고 skipLibCheck: truenode_modules를 추가하여 제외시킬 수 있습니다. 서비스를 따라 많은 도움을 받았으며 한 파일은 모든 폴더를 직접적인 프로젝트 참조에 관계없이 PS-JavaScript 인텔리전스 지원을 계속 원하면 allowJs: truenoEmit: true 옵션 .

마지막으로 도구> 옵션> 텍스트 편집기> Javascript / Typescript> 프로젝트 의 Typescript 옵션에서 보조 타사 프로젝트의 리소스를 묶을 수 있으므로 프로젝트에 포함되지 않은 Typescript 파일자동으로 컴파일 하도록 선택되어 있지 않은지 확인하십시오. 노드 또는 타이프 스크립트를 사용합니다.

이것들은 바보가 아닙니다. 각각의 정확한 병목 현상을 찾아야하지만, 나는 이것들이 나와 내 팀을 위해 더 자주 일한 것을 발견했습니다.


이것은 나를 위해 일했습니다. 'C : \ Program Files \ nodejs'(이전에 NodeJS를 수동으로 설치 한 위치)를이 목록의 맨 위에 추가했으며 Node.js 프로세스는 CPU로드가 50-60 %에서 0 %로 증가했습니다.
andynil

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- consumer-to.html


2
여기에서 15.2 (26430.16)를 실행하면 어리석게도 높은 메모리 소비 문제를 해결했지만 높은 메모리 소비로 다운 그레이드해야합니다 :)
PJUK

1
동의했다. 문제는 주로 node.js가 제대로 작성되지 않았기 때문에 발생합니다 ( "객체"기능이 반복해서 반복된다). JS의 단점을 패치하기위한 프레임 워크는 항상 속도가 느려질 것입니다. 이것은 Linux 사람들이 Windows를 위해 개발할 때 발생하는 일입니다-뚱뚱한 복잡한 혼란.
MC9000

github.com/aspnet/JavaScriptServices/issues/1298 에서이 문제를보고했습니다 . JavaScript 프로젝트에서 2015 년 VS 2015에서이 문제를 관찰했지만 문제는 더욱 악화되고 있습니다.
멋진 세계


나를 위해 고정되지 않았습니다. 버전 15.6.6에서 여전히 많은 메모리를 사용
John81

0

VS 코드에서 언어 서비스를 비활성화하려면 확장으로 이동 한 다음 기본 제공 확장을 필터링하고 TypeScript / Javascript 언어 서비스를 비활성화하십시오.

VS 코드의 노드 서비스가 내 서버를 약 백만 번 추락 한 후에 마침내 이것을 발견했습니다. 이 문서를 찾기가 너무 어려웠습니다.

내장 ts / js 언어 서비스 확장 사용 안함


0

필자의 경우 bot은 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.