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로 제한되었습니다).
답변
도구> 옵션> 텍스트 편집기> JavaScript / TypeScript> 언어 서비스 …
‘새 JavaScript 언어 서비스 사용’을 선택 취소하십시오.
이는 NodeJS 프로세스가 시작되지 못하게하는 것으로 보입니다.
답변
이 문제에 대한 피드백을 받았습니다.
MS 팀으로부터 답변을 받았습니다. 그는이 게시물로 나를 안내했습니다.
node.exe 프로세스에는 다음 명령 줄이 있습니다.
효과적으로 나는 들었다 :
VS 2017에서는 JavaScript로 여러 기능이 구현되었습니다. Node.js는 Visual Studio에서 해당 JavaScript를 실행하는 데 사용됩니다. 무엇보다도 Node는 사용자가 TypeScript 또는 JavaScript를 편집 할 때 형식화 및 인텔리전스 서비스를 제공하는 코드를 실행하는 데 사용됩니다. 이것은 VS 2015에서 변경된 것입니다.
내 질문에 대답하지만 다른 것을 밝힙니다-왜 JavaScript 파일에 지능을 부여하기 위해 1.4GB의 메모리가 필요합니까? 또는 VS에 내장 된 솔루션 중 하나이므로 적은 메모리를 사용하므로 32 비트 프로세스의 2GB (4GB) 제한에 도달하지 않습니까? 질문 질문 질문.
답변
Visual Studio에서 TypeScript 지원을 비활성화해야합니다.
도구> 확장 및 업데이트> Microsoft Visual Studio 용 TypeScript> 비활성화
그런 다음 Visual Studio를 다시 시작하면됩니다.
답변
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 파일에 추가하면 수명이 다되었습니다.
답변
가장 더러운 해결 방법 : 그냥 ServiceHub.Host.Node.x86.exe
다른 이름으로 바꾸십시오 . 그 이후로 나를 귀찮게하지 않았습니다. 실제로 필요한 경우 이름을 바꾸십시오.
Adobe Photoshop에서도 동일한 트릭이 작동합니다.이 작업은 아직 일반적인 작업 과정에서 발견하지 못한 이유로 노드를 실행합니다.
드러내다…
이름 만 바꾸고 계속 작동 할 수는 없습니다. 누가 알았 겠어!
분명히이 이름 바꾸기 트릭은 VS 프로세스를 일시 중단하고 노드를 종료 한 다음 VS를 다시 시작하는 경우에만 작동합니다. Node exe 파일 이름이 바뀐 상태에서 VS를 시작하려고하면 “알 수없는 하드 오류”가있는 프로젝트를 열 때 충돌이 발생합니다. 또한 이미로드 된 프로젝트에서 작업하는 동안 메소드와 속성 위의 게으른 참조 카운터가 작동하지 않습니다.
따라서 노드 프로세스를 일시 중단하고 exe의 이름을 바꾸지 않고 Windows 페이징에서 메모리를 램에서 하드 드라이브로 스왑하도록하면 나중에 이름 바꾸기 번거 로움없이 VS를 다시 시작할 수 있습니다. 그 결과로 기꺼이 살려고한다면 바로 그 것입니다.
답변
프로젝트가 nodejs 가중치를 완화하는 데 도움이되는 것 : 도구> 옵션> 프로젝트 및 솔루션> 웹 패키지 관리 에서 사용 된 노드 버전 을 설치된 64 비트 버전 으로 재 할당하는 것 입니다. Studio는 여전히 tsserver.js 인스턴스에 대한 내부 노드를 시작하지만 프로젝트의 모든 유형 스크립트는 기본적으로 제공되는 버전으로 설정되어있어 직접 도움이되었습니다.
또한 언어 서비스가 다운되는 것을 발견 tsconfig.json
했을 때, 리포지토리로 사용되는 디렉토리 위의 간단한 것을 사용하여 발견 하고 to를 지정하고 skipLibCheck: true
node_modules를 추가하여 제외시킬 수 있습니다. 서비스를 따라 많은 도움을 받았으며 한 파일은 모든 폴더를 직접적인 프로젝트 참조에 관계없이 PS-JavaScript 인텔리전스 지원을 계속 원하면 allowJs: true
및noEmit: true
옵션 .
마지막으로 도구> 옵션> 텍스트 편집기> Javascript / Typescript> 프로젝트 의 Typescript 옵션에서 보조 타사 프로젝트의 리소스를 묶을 수 있으므로 프로젝트에 포함되지 않은 Typescript 파일 을 자동으로 컴파일 하도록 선택되어 있지 않은지 확인하십시오. 노드 또는 타이프 스크립트를 사용합니다.
이것들은 바보가 아닙니다. 각각의 정확한 병목 현상을 찾아야하지만, 나는 이것들이 나와 내 팀을 위해 더 자주 일한 것을 발견했습니다.
답변
높은 메모리 소비량은 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