2017-10-10 15 views
13

उबंटू node पर कार्य प्रबंधक के अनुसार 900 एमबी और 1.3 जीबी स्मृति के बीच चल रही 8 प्रक्रियाएं हैं।क्या वेबपैक 9 जीबी मेमोरी लेने के लिए सामान्य है?

यह बहुत अधिक लगता है। सौभाग्य से मेरे कंप्यूटर में 12 जीबी मेमोरी है, लेकिन क्या यह बहुत ज्यादा है? यदि ऐसा है तो यह कोई विचार क्यों है?

मेरा कंप्यूटर कभी-कभी फ्रीज करता है और कभी-कभी हिचकिचा जाता है जब वेबपैक परिवर्तनों का पता लगाता है और चलना शुरू करता है।

webpack:^3.6.0, बंडल पर नजर:^0.2.0, डैशबोर्ड: 1.0.0-5, webpack-देव-सर्वर:^2.2.0, कोलाहल:^6.3.26

मैं जैसे WebpackDevServer का उपयोग कर मी:

const config = { 
    context: __dirname, 

    devtool: 'eval-cheap-module-source-map', 

    module: { 
     loaders: [ 
      { 
       test: /\.js[x]?$/, 
       exclude: /node_modules/, 
       loader: 'babel-loader' 
      }, 
      { 
       test: /\.s[ac]ss$/, 
       exclude: '/node_modules/', 
       use: [{ 
        loader: 'style-loader', 
        options: { 
         sourceMap: true 
        } 
       }, { 
        loader: 'css-loader', 
        options: { 
         sourceMap: true 
        } 
       }, { 
        loader: 'sass-loader', 
        options: { 
         sourceMap: true, 
         includePaths: [path.resolve(__dirname)] 
        } 
       }] 
      }, 
      { 
       test: /\.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/, 
       exclude: '/node_modules/', 
       loader: 'file-loader' 
      }, 
      { 
       test: /\.(jpe?g|png|gif)$/, 
       exclude: '/node_modules/', 

       // If an image is less than 10kb, use data-url for images, otherwise 
       // falls back to file-loader. 
       loaders: ['url-loader?limit=10000&name=images/[hash:12].[ext]'] 
      } 
     ] 
    }, 

    resolve: { 
     descriptionFiles: ['package.json'], 
     extensions: ['.js', '.jsx', '.scss'], 
     mainFiles: ['index'], 
     modules: ['node_modules', path.resolve(__dirname)], 
    } 
}; 

config.entry = { 
    main: [ 
     'react-hot-loader/patch', 
     'babel-polyfill', 
     './index.jsx', 
     'webpack/hot/only-dev-server', 
     `webpack-dev-server/client?http://${ localConfig.ip }:${ localConfig.port }` 
    ] 
}; 


config.output = { 
    path: path.resolve('./dist/'), 
    publicPath: `http://${ localConfig.ip }:${ localConfig.port }/assets/bundles/`, 
    filename: '[name].js' 
}; 


config.plugins = [ 
    new webpack.HotModuleReplacementPlugin(), 

    new webpack.NoEmitOnErrorsPlugin(), 

    // Used by Django. 
    new BundleTracker({ filename: './webpack-stats-dev.json' }), 

    new webpack.NamedModulesPlugin(), 

    new DashboardPlugin(dashboard.setData) 
]; 

किसी Troublshooting कदम की एक अच्छी सूची जानता है, कि बहुत मददगार होगा:

new WebpackDevServer(webpack(config), { 
    headers: { 
     'Access-Control-Allow-Origin': '*', 
     'Access-Control-Allow-Headers': 'Content-Type, Authorization, x-id, Content-Length, X-Requested-With', 
     'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS' 
    }, 

    historyApiFallback: true, 
    hot: true, 
    publicPath: config.output.publicPath, 
    quiet: true, // Shows WebpackDashboard instead. 
    watchOptions: { 
     aggregateTimeout: 300, 
     poll: 1000 
    } 
}).listen(...); 

यहाँ मेरी webpack फ़ाइल है।

+2

हाँ, यह बहुत अधिक है। क्या आप वाकई ठीक से बाहर निकल रहे हैं? यानी यदि आप वेबपैक सर्वर को रोकते हैं, तो क्या आप 0 नोड प्रक्रियाओं या 7 के साथ समाप्त होते हैं? – Ryan

+0

जब मैं प्रक्रिया को रोकता हूं तो सभी नोड प्रक्रियाएं गायब हो जाती हैं। –

+0

ओह भी, पहला रन सभी 8 प्रक्रियाओं को दिखाता है, 1 1 जीबी लेता है और 7 केवल 300 एमबी लेता है। दूसरे रन के बाद अधिकांश प्रक्रियाएं 1 जीबी तक जाती हैं, 4 वें या 5 वें रन से, वे सभी 1 जीबी पर या उससे ऊपर हैं। तब तक वे एक ही स्मृति उपयोग पर रहते हैं और बढ़ते रहेंगे। –

उत्तर

1

ऐसा लगता है कि आपकी प्रक्रिया में 1 जीबी लगती है, लेकिन चूंकि उन्हें 8 बार निष्पादित किया जाता है, अलग प्रक्रियाओं के रूप में ... फिर वे 8 जीबी रैम लेते हैं। वह जगह है जहां धागे जीत रहे हैं।

यदि समस्या परीक्षण के साथ है, तो आप जीसी को मजबूर कर सकते हैं। मेरे मामलों में, इमारत कुछ तेज है। निर्भरता प्राप्त करने में समय लगता है, और परीक्षण निष्पादन भी महंगा है। अगर वह अपने मामले में भी है के लिए here देखो:

अगर मैं जी सी() फोन मैन्युअल रूप से हर 100 अनुरोधों, आरएसएस के ऊपर 70 MiB जाना नहीं है।

जैसा कि आपने लिखा है, कठिन समस्या है। मुझे लगता है कि आप किनारे पर हैं।

संबंधित मुद्दे