Visual Studio 2017 – Node.JS服务器进程 – closures?
我正在使用Visual Studio 2017中的ASP.NET应用程序,我注意到一个Node.JS:运行在1.3GB到1.8GB内存的服务器端Javascript进程。 我的IIS工作进程是它在VS 2015中的正常大小。
我的应用程序不包含任何Node.JS库。 我无法弄清楚如何closures这个Node.JS:服务器端Javascript进程。 对于我没有用的东西来说,它消耗了太多的记忆。
除了卸载VS 2017并切换回VS 2015之外,还有什么办法可以解决这个问题吗?
杀死任务pipe理器中的主进程不会影响VS中的任何内容,但是如果我转到“详细信息”选项卡并杀死单个正在运行的进程,则会使Visual Studio崩溃。 我拍了一个video,说明我杀了这个程序后,跑了我的本地网页(对不起,因为图片大小限制在2MB以内):
工具>选项>文本编辑器> JavaScript / TypeScript>语言服务…
取消选中“启用新的JavaScript语言服务”。
这似乎阻止了NodeJS进程启动。
您必须在Visual Studio上禁用TypeScript支持:
工具>扩展和更新>用于Microsoft Visual Studio的TypeScript>禁用
之后,只需重新启动Visual Studio,你就可以走了。
我就这个问题提出了反馈意见:
我从一个MS团队得到了回复 – 他指示我这个职位:
node.exe进程具有命令行:
有效地告诉我:
在VS 2017中,JavaScript中实现了一些function。 Node.js被Visual Studio用来运行该JavaScript。 除此之外,Node用于在用户编辑TypeScript或JavaScript时运行提供格式化和智能感知服务的代码。 这是从2015年的变化。
它回答了我的问题,但是却揭示了另一个问题 – 为什么你需要1.4GB的内存才能给我提供JavaScript文件的智能感知……或者这是VS内置的解决scheme之一,所以它使用较less的内存,因此它不会没有达到32位进程的2GB(4GB)限制? 提问问题。
Ryan Ternier的回答指出我认为是正确的方向。 在他的链接( https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629 )引导我Bowden凯利的答案,就在被接受的答案之下。
这是Bowden Kelly的回答:
您所看到的节点进程正在为JavaScript语言服务提供支持。 当你编辑一个JS文件,TS文件或任何带JS / TS的文件(html,cshtml等)时,你会看到这个过程出现。 这个过程是智能感知,代码导航,格式化和其他编辑function的function,它通过分析项目的整个上下文来完成。 如果你的项目中有很多的.js文件,这可能会变得很大,但很可能问题在于你有很多正在分析的库文件。 默认情况下,我们将扫描项目中的每个.js / .ts文件。 但是你可以覆盖这个行为,并调整语言服务,只关注你的代码。 为此,请使用以下设置在项目根目录中创build一个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中运行,由于某些原因,我还没有在平常的工作stream程中发现它。
原来…
你不能只是重命名它,并期望事情继续工作。 谁知道!
显然这个重命名技巧只有当你暂停VS进程并杀死节点,然后恢复VS. 如果您尝试启动与重命名节点exe文件的VS,它会崩溃时打开一个“未知的硬错误”的项目。 另外,在处理一个已经加载的项目的时候,在方法和属性之上的延迟引用计数器将不起作用,因为显然依赖于在那里的节点。
因此,暂停Node进程或让Windows分页将其内存从ram中移出到硬盘上可能没有问题,也不需要重命名exe文件,以便以后可以重新启动VS而不必重新命名。 如果你愿意承受后果,那就是。
只是注意到,高内存消耗已经在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-consuming-to.html
- 如何在MVC3的部分视图中呈现一个部分?
- 如何获取HttpRequestMessage数据
- 在ASP.NET MVC中redirect()与RedirectPermanent()
- 将“自定义操作筛选器”中的ASP.NET MVC Pass对象传递
- VS2010上的MVC项目错误:此安装不支持项目types
- 如何获取ASP.NET MVC操作中的引用URL?
- 如何在ASP.NET WebAPI中返回一个文件(FileContentResult)
- 是否可以在自定义的AuthorizeAttribute类中使用RedirectToAction()?
- entity framework代码第一 – 如何运行生产数据库的更新数据库