Express.js的性能问题

时间:2013-12-17 20:56:02

标签: javascript node.js backbone.js amazon-web-services sails.js

我遇到Express.js的性能瓶颈。 方案如下。客户端是Backbone / Marionette / RequireJS完整SPA.Server是用sails.js编写的。 Sails仅用作REST服务器(不提供任何HTML)这两个应用程序都在AWS - Windows实例上的一台计算机上提供。 WIndows服务器2012 32x。

Sails作为单独的节点进程提供。客户端作为另一个单独的流程。服务器响应时间是即时的,而客户端是可怕的。 * .js文件会不断地一次又一次地下载。这是我仅用于为客户提供服务的脚本。

    "use strict";



process.env.NODE_ENV = "production";

var allowCrossDomain = function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers', 'content-type, Authorization, Content-Length, X-Requested-With, Origin, Accept');

    if ('OPTIONS' === req.method) {
        res.send(200);
    } else {
        next();
    }
};

var path = require("path"),
    express = require("express"),
    app = express();

app.configure('production', function () {
    var oneYear = 31557600000;         //31557600000
    app.set('port', process.env.PORT || 80);
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(allowCrossDomain);
    app.use(app.router);
    //Serve the root
    app.use(express.static(__dirname + './../',  { maxAge: oneYear } ));
    console.log("Started!");
});

app.listen(80)
  1. 这个简约的Express服务器有什么问题吗? 此脚本位于项目根目录中的文件夹中。

  2. 如果我使用Apache提供这些脚本,我会得到更好的结果吗? IIS?使用其他任何节点,有点失败我猜的目的......但我愿意做任何事情来最终解决这个问题。如果使用IIS为我的客户端提供服务是完全有效的,那就这样吧。我只需要指示。

  3. 在Ubuntu实例(我无法使用)上启动时的同一项目要快得多,他们使用Apache来服务Backbone Client。响应时间很长。他们和我们的实例是在Micro实例上提供的。

    当我放大实例(Windows),说像M1.Medium之类的东西时,一切都会好得多,也就更快。当然,我们将为项目使用付费实例...... Ubuntu实例的运行速度比Windows版快得多,这简直令人难以置信。也许这是正常的,因为Windows Server有更大的内存和CPU占用空间?我只是不知道。

    对此有何想法?

0 个答案:

没有答案