Visual Studio 2017 - Node.JS सर्वर प्रक्रिया - बंद करें?


132

मैं Visual Studio 2017 में ASP.NET ऐप पर काम कर रहा हूं और मैं Node.JS को नोट कर रहा हूं: सर्वर-साइड जावास्क्रिप्ट प्रोसेस 1.3GB से 1.8GB मेमोरी पर चल रहा है। मेरा IIS कार्यकर्ता प्रक्रिया सामान्य आकार है जो कि वीएस 2015 में है।

मेरे ऐप में कोई भी Node.JS लाइब्रेरी शामिल नहीं है। मैं यह पता लगाने में सक्षम नहीं हूं कि इस नोड को कैसे चालू करें। जेएस: सर्वर-साइड जावास्क्रिप्ट प्रक्रिया बंद। यह किसी ऐसी चीज के लिए बहुत ज्यादा मेमोरी खा रहा है जिसका मुझे कोई फायदा नहीं है।

क्या वीएस 2017 को अनइंस्टॉल करने और वीएस 2015 पर वापस स्विच करने से इसे अलग करने का एक तरीका है?

यहाँ छवि विवरण दर्ज करें

टास्क मैनेजर में मुख्य प्रक्रिया को मारने से वीएस में कुछ भी प्रभावित नहीं होता है, हालांकि अगर मैं विवरण टैब पर जाता हूं और व्यक्तिगत रनिंग प्रक्रियाओं को मारता हूं तो यह इमेजिनरी स्टूडियो है। मैंने इस प्रक्रिया को मारने के बाद जो कुछ भी किया था उसका वीडियो लिया और अपना स्थानीय वेब पेज चलाया (क्षमा करें गुणवत्ता के लिए, SO सीमित छवि आकार 2MB तक:

यहाँ छवि विवरण दर्ज करें


1
क्या आप टाइपस्क्रिप्ट का उपयोग कर रहे हैं?
SLaks

हम इसकी थोड़ी मात्रा का उपयोग कर रहे हैं।
रयान टर्नियर

मैंने वह प्रक्रिया पूरी कर ली है और कोई बुरा प्रभाव नहीं देखा है। वेब-कंपाइलर इसके बिना LESS फाइलों को संकलित करता है।
ग्लेन लिटिल

@GlenLittle वह काम करता है, लेकिन बिल्ली की तरह ... यह वापस आ गया। मैं सोच रहा था कि यह शुरुआत में कुछ स्थापित है और हमेशा चल रहा है। मैंने अपने लंगोटी पर सिर्फ VS2017 स्थापित किया और इसने मुझे सर्वर स्थापित करने का विकल्प दिया। जब मैं इस पर परीक्षण करूंगा तो मैं इसे अपडेट करूंगा
रयान टर्निर

क्या आप इस बारे में कोई प्रतिक्रिया आइटम दर्ज कर सकते हैं? वेब देव उपकरणों में कुछ अलग विशेषताएं हैं जो हुड के नीचे नोड का उपयोग करते हैं (जैसे कि JSLint / CSSLint / etc) जो यहां शामिल हो सकते हैं। ये केवल टाइपस्क्रिप्ट या नोड नहीं, बल्कि किसी भी वेब प्रोजेक्ट के लिए दिखाए जाएंगे।
जिमी

जवाबों:


183

उपकरण> विकल्प> पाठ संपादक> जावास्क्रिप्ट / टाइपस्क्रिप्ट> भाषा सेवा ...

'नई जावास्क्रिप्ट भाषा सेवा सक्षम करें' को अनचेक करें।

यह NodeJS प्रक्रिया को शुरू होने से रोकने के लिए प्रकट होता है।


19
इस समाधान ने मदद की, उत्थान किया जाना चाहिए। लेकिन प्रभावी होने के लिए आपको दृश्य स्टूडियो को पुनरारंभ करना होगा।
मैड

14
मैंने ऐसा किया, VS2017 को रिबूट किया, यह अभी भी "Node.js: सर्वर-साइड जावास्क्रिप्ट" को शुरू करने से नहीं रोकता था जब मैंने VS2017 शुरू किया था। अपनी मशीन पर इसका लगभग 800MB का हॉगिंग और मैं अब क्रोम में डिबग नहीं कर सकता।
बिल

1
यहाँ @ समान समस्या - गैब्रियल के उत्तर के अनुसार टाइपस्क्रिप्ट एक्सटेंशन को अक्षम करना ऐसा लगता है कि इसे हल कर दिया गया है।
डनक

1
क्या बकवास है? पाठ संपादक सेटिंग्स में ऐसा क्यों है? : P
Sна Pошƒаӽ

3
यह मेरे लिए मेरे मेनू में एक विकल्प भी नहीं है
ब्रैडलैन

29

मैंने इस मुद्दे पर प्रतिक्रिया दी:

https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html

मुझे एक एमएस टीम से प्रतिक्रिया मिली - उसने मुझे इस पद के लिए निर्देशित किया:

https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629

नोड। Exe प्रक्रिया में कमांड लाइन है: यहाँ छवि विवरण दर्ज करें

प्रभावी रूप से मुझे बताया गया था:

वीएस 2017 में, जावास्क्रिप्ट में कई विशेषताएं लागू की गई हैं। Node.js का उपयोग विजुअल स्टूडियो द्वारा जावास्क्रिप्ट को चलाने के लिए किया जाता है। अन्य बातों के अलावा, नोड का उपयोग उस कोड को चलाने के लिए किया जाता है, जब उपयोगकर्ता टाइपस्क्रिप्ट या जावास्क्रिप्ट को संपादित कर रहा होता है। यह वीएस 2015 से एक बदलाव है।

यह मेरे सवाल का जवाब देता है, लेकिन एक और बात प्रकाश में लाता है - आपको जावास्क्रिप्ट फाइलों पर मुझे इंटेलीजेंस देने के लिए 1.4 जीबी मेमोरी की आवश्यकता क्यों है ... या क्या यह उन समाधानों में से एक है जो वीएस में बनाया गया है इसलिए यह कम मेमोरी का उपयोग करता है इसलिए यह नहीं करता है 32-बिट प्रक्रियाओं की 2GB (4GB) की सीमा नहीं है? प्रश्न प्रश्न प्रश्न।


वास्तव में यह मुख्य VS प्रक्रिया को अधिक संवेदनशील बनाने और Intellisense जैसी कुछ चीजों को एक और प्रक्रिया में लाकर और प्रत्येक 32-बिट प्रक्रिया के लिए अधिक RAM के साथ प्रदर्शन का अनुकूलन करने की बात है। लेकिन इस मामले में यह हमारे लिए कोई मायने नहीं रखता है। मैंने पाया है कि यदि आपके पास अधिक स्रोत कोड फ़ाइलें खुली हैं और Intellisense सक्षम है तो नोड अधिक मेमोरी का उपभोग करता है। यदि आप वास्तव में मेमोरी पर कम चल रहे हैं, तो Intellisense और अन्य सुविधाओं को अक्षम करने के साथ प्रयोग करें जो आप बिना कर सकते हैं।
user1306322

2
यह मेरे लिए विपरीत प्रभाव पड़ा है और VS2017 को इतना आलसी (दंडनीय उद्देश्य) बना दिया है कि मैं VS2015 वापस जा रहा हूं। मुझे यह हास्यास्पद लगता है कि एमएस को इंटेलीजेंस के रूप में कुछ सरल करने के लिए 3 पार्टी बाहरी ढांचे का उपयोग करना है। यह हमेशा उनकी ताकत में से एक रहा है ... और अब? मैंने टाइपस्क्रिप्ट और Node.js को अक्षम कर दिया है और अगर मैं सिर्फ क्रोम VS2017 को देखता हूं तो इतनी बुरी तरह से लटका देता हूं कि मुझे कभी-कभी रिबूट करना पड़ता है। तो कम से कम अभी के लिए मेरे लिए फ़ायरफ़ॉक्स और VS2015 वापस कर दें। और यह एक i7, 16GM RAM और Win10 प्रो के साथ सभी SSD सेटअप पर है। चौंका देने वाला।
नेविल

यहाँ संदर्भित पद के अनुसार ... टाइपस्क्रिप्ट एक्सटेंशन को अक्षम करना फिलहाल मेरे लिए कम से कम मेरे लिए एक काम है। टूल, एक्सटेंशन और अपडेट पर क्लिक करें, "टाइपस्क्रिप्ट" के लिए खोजें और इसे अक्षम करें। विज़ुअल स्टूडियो को पुनरारंभ करें।
पॅट कैपोज़ज़ी

खैर, यह बताता है कि इंटेलीसेंस नरक में क्यों गया है।
एंडी

19

आपको Visual Studio पर टाइपस्क्रिप्ट समर्थन को अक्षम करना होगा:

उपकरण> एक्सटेंशन और अपडेट> Microsoft विज़ुअल स्टूडियो के लिए टाइपस्क्रिप्ट> अक्षम करें

उसके बाद, केवल Visual Studio को पुनरारंभ करें, और आप जाने के लिए अच्छे हैं।


1
अभी भी दौड़ने के बाद मैंने इस कदम का पालन किया
जेरी विट्रियोलो १३'१ 0 को ०

1
अभी भी दौड़ रहा है। इसने कुछ नहीं किया।
BradLaney

16

रेयान टर्नियर के जवाब ने मुझे बताया कि मेरा मानना ​​है कि सही दिशा है। उनके लिंक के बाद ( https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childmoView=27629#comment-27629 ) ने बोडेन केली के जवाब में मेरा नेतृत्व किया। , स्वीकृत उत्तर के नीचे।

यहाँ है बोडेन केली का जवाब:

आप जो नोड प्रक्रिया देख रहे हैं, वह जावास्क्रिप्ट भाषा सेवा को शक्ति प्रदान कर रही है। आप देखेंगे कि जब भी आप जेएस फाइल, टीएस फाइल, या जेएस / टीएस के साथ कोई फाइल (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 फ़ाइल में अपने सभी स्क्रिप्ट पुस्तकालयों के साथ फ़ोल्डर जोड़ा, तो जीवन फिर से अच्छा था।


पिछले उत्तर में मेरे साबुन के बक्से के बाद, यह दिन बचाया है लगता है !!! इस तरह की एक साधारण बात अभी तक इतनी अस्पष्ट है और केवल वीएस २०१ finally के साथ जूझने के तीन दिनों के लिए आखिरकार मुझे यह पता चला!
नेविल

जब मैंने प्रोजेक्ट बनाया तो इस फ़ाइल को सभी प्रकार की टाइपस्क्रिप्ट त्रुटियों में जोड़ा गया। इसे हटा दिया और त्रुटियां दूर हो गईं।
जॉन'१

4

सबसे गंदा वर्कअराउंड: बस ServiceHub.Host.Node.x86.exeकुछ और नाम बदलें । जब से मुझे परेशान नहीं किया है जब (यदि) आपको वास्तव में इसकी आवश्यकता होती है, तो इसे वापस नाम दें।

उसी चाल में काम करता है Adobe Photoshop, जो किसी कारण के लिए भी नोड चलाता है जो मैंने अपने सामान्य वर्कफ़्लो में अभी तक नहीं खोजा है।


पता चला है...

आप इसे सिर्फ नाम नहीं दे सकते हैं और चीजों को काम करते रहने की उम्मीद कर सकते हैं। किसे पता था!

जाहिरा तौर पर यह नाम बदलने की चाल केवल तभी काम करती है जब आप वीएस प्रक्रिया को निलंबित कर देते हैं और नोड को मार देते हैं, फिर वी.एस. यदि आप वी.एस. को नोड नाम के साथ एक्सई फ़ाइल नाम से लॉन्च करने का प्रयास करते हैं, तो यह "अज्ञात हार्ड त्रुटि" के साथ प्रोजेक्ट खोलने पर क्रैश हो जाएगा। इसके अलावा, पहले से ही भरी हुई परियोजना पर काम करते समय, विधियों और गुणों के ऊपर आलसी संदर्भ काउंटर काम नहीं करेगा क्योंकि जाहिर है कि नोड पर किसी तरह निर्भर करता है।

तो यह केवल नोड प्रक्रिया को निलंबित करने और विंडोज को हार्ड ड्राइव पर रैम से अपनी मेमोरी को स्वैप करने देने के लिए ठीक हो सकता है, बिना exe का नाम लिए बिना ताकि आप वी.एस. को बाद में फिर से शुरू कर सकें बिना नाम बदलने की परेशानी के। यदि आप परिणामों के साथ रहने को तैयार हैं, तो यह है।


दुर्भाग्य से, मुझे लगता है कि कुछ कोड है जो पता लगाएगा कि क्या नोड प्रक्रिया अनुत्तरदायी है और इसके बजाय एक नया लॉन्च करें। मैं VS कोड के उस हिस्से से परिचित नहीं हूं, लेकिन यह मेरे लिए कैसे वर्णित है।
जिमी

मुझे हमेशा बल से वंचित करने का विचार पसंद है , आप जानते हैं कि मेरा क्या मतलब है ... ;-)
SANđошƒа17

3

कुछ ऐसा है जो परियोजनाओं को नोड्ज के वजन को कम करने में मदद कर सकता है: उपकरण> विकल्प> परियोजनाओं और समाधान> वेब पैकेज प्रबंधन के तहत उपयोग किए जाने वाले नोड संस्करण को 64 बिट संस्करण में पुन: असाइन करना है । स्टूडियो अभी भी अपने आंतरिक नोड को tsserver.js उदाहरण के लिए लॉन्च करेगा, लेकिन प्रोजेक्ट में कोई भी टाइप सप्लाई किए गए संस्करण में डिफ़ॉल्ट होगा - और इससे मुझे पहली बार मदद मिली।

इसके अलावा, दूसरी बार जब मैंने भाषा सेवा को नीचे चलाने के लिए पाया, तो मैंने tsconfig.jsonरिपॉजिटरी के रूप में उपयोग की जाने वाली निर्देशिकाओं के ऊपर एक सरल का उपयोग करके पता लगाया , और निर्दिष्ट करने के skipLibCheck: trueलिए नोड_मॉड्यूल्स को जोड़ दिया - सेवा के साथ बहुत मदद की, और एक फाइल नीचे सभी फ़ोल्डर्स को करती है यह, प्रत्यक्ष परियोजना संदर्भों की परवाह किए बिना। पुनश्च - यदि आप अभी भी जावास्क्रिप्ट इंटेलीजेंस समर्थन चाहते हैं, तो विकल्प allowJs: trueऔर noEmit: trueविकल्प सेट करना सुनिश्चित करें ।

अंत में, टूल्स> विकल्प> टेक्स्ट एडिटर> जावास्क्रिप्ट / टाइपस्क्रिप्ट> प्रोजेक्ट के तहत टाइपस्क्रिप्ट विकल्पों में सत्यापित करें कि यह स्वचालित रूप से टाइपस्क्रिप्ट फ़ाइलों को संकलित करने के लिए जाँच नहीं की गई है जो किसी प्रोजेक्ट का हिस्सा नहीं हैं क्योंकि यह ऑक्सिलर 3 पार्टी प्रोजेक्ट्स के लिए संसाधनों को बाँध भी सकता है। नोड या टाइपस्क्रिप्ट का उपयोग करना।

ये मूर्खतापूर्ण सबूत नहीं हैं, प्रत्येक को अपनी सटीक अड़चन ढूंढनी है, लेकिन मैंने पाया है कि ये मेरे और मेरी टीम के लिए अधिक बार नहीं


इसने मेरे लिए काम किया। इस सूची के शीर्ष पर 'C: \ Program Files \ नोडज' (जहाँ मैंने पहले मैन्युअल रूप से NodeJS स्थापित किया है) जोड़ा गया था, और Node.js प्रक्रिया 50-60% CPU लोड से 0% हो गई।
andynil

1

बस यह देखते हुए कि उच्च-मेमोरी खपत 10 मई, 2017 में तय की गई है - विज़ुअल स्टूडियो 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


2
यहां 15.2 (26430.16) चल रहा है और मैं कहूंगा कि शायद उन्होंने एक हास्यास्पद - ​​उच्च-मेमोरी खपत मुद्दा तय किया था, लेकिन केवल इसे उच्च-मेमोरी खपत में डाउनग्रेड करने का प्रयास किया :)
PJUK

1
माना। समस्या ज्यादातर इस वजह से है कि खराब लिखा गया नोड। जेएस पहले स्थान पर है (उस "ऑब्जेक्ट" फ़ंक्शन को बार-बार दोहराया जाता है) - फिर, जेएस की कमियों को पैच करने के लिए रूपरेखा हमेशा चीजों को धीमा कर देगी। यह तब होता है जब आपके पास लिनक्स के लोग विंडोज के लिए विकसित होते हैं - एक बड़ा वसा दृढ़ गड़बड़।
MC9000

मैंने इस मुद्दे को github.com/aspnet/JavaScriptServices/issues/1298 पर रिपोर्ट किया है। मैंने इस मुद्दे को 2015 में वीएस 2015 के साथ जावास्क्रिप्ट परियोजनाओं के साथ देखा था, लेकिन समस्या और भी बदतर होती जा रही है।
अद्भुत दुनिया


मेरे लिए तय नहीं। अभी भी संस्करण 15.6.6 के साथ टन मेमोरी को खा रहा है
John81

0

वीएस कोड में भाषा सेवाओं को अक्षम करने के लिए, एक्सटेंशन पर जाएं, फिर बिलिन एक्सटेंशन पर फ़िल्टर करें और टाइपस्क्रिप्ट / जावास्क्रिप्ट भाषा सेवा को अक्षम करें।

मुझे आखिरकार वीएस कोड की नोड सेवा द्वारा मेरे सर्वर को लगभग एक लाख बार क्रैश करने के बाद इसका पता चला। कष्टप्रद है कि इसके बारे में प्रलेखन खोजना इतना कठिन था।

अक्षम बेसिन ts / js भाषा सेवा विस्तार


0

मेरे मामले में मैंने बॉट को नोड.जेएस प्रक्रिया को मारना चाहता था और मैंने सीपीयू की खपत को कम करने के लिए निम्नलिखित बातों का पालन किया। एनओडी। विज प्रक्रियाएं जो विजुअल स्टूडियो 2019 के तहत चलती हैं:

  • मैंने फ़ोल्डर को हटा दिया "प्रोग्राम फाइल्स (x86) / MicrosoftSDK / टाइपस्क्रिप्ट
  • मै भागा npm rebuild fsevents
  • मैं क्रोम ब्राउज़र में बंद हो गया: सेटिंग्स-सिस्टम-जारी पृष्ठभूमि एप्लिकेशन चला रहा हूं ...

यह मुझे अब बहुत अच्छा लगता है। लेकिन 100% unfortunatelly नहीं।

आशा है कि यह वहाँ किसी को भी मदद करता है। शुभकामनाएँ दोस्तों! :-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.