Подтвердить что ты не робот

Нормально ли для Webpack взять 9 ГБ памяти?

в соответствии с диспетчером задач на Ubuntu node имеет 8 процессов, выполняющих между 900mb и 1.3gb памяти.

Это слишком много. К счастью, мой компьютер имеет 12 ГБ памяти, но это слишком много? Если это так, то почему это так много?

Мой компьютер постоянно замерзает и так часто икает, когда webpack обнаруживает изменения и начинает работать.

webpack: ^ 3.6.0, отслеживатель пакетов: ^ 0.2.0, панель мониторинга: 1.0.0-5, webpack-dev-server: ^ 2.2.0, babel: ^ 6.3.26

Я использую WebpackDevServer как:

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( ... );

Вот мой файл в Интернете:

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)
];

Если кто-то знает хороший список шагов по устранению неполадок, это будет очень полезно.

4b9b3361

Ответ 1

Похоже, ваш процесс занимает 1 ГБ, но поскольку они выполняются 8 раз, как отдельные процессы... тогда они берут 8 ГБ оперативной памяти. Именно там побеждают нитки.

Если проблема связана с тестированием, вы можете заставить GC. В моих случаях здание - это нечто довольно быстрое. Захватывающие зависимости требуют времени, а также выполнение теста дорого. Если это также в вашем случае, посмотрите здесь для:

Если я вызову gc() вручную каждые 100 запросов, RSS не будет превышать 70 MiB.

Как вы писали, сложная проблема. Я думаю, вы на грани.