js获取服务器响应时间,来自nodejs服务器的响应时间与表达对树莓pi非常缓慢

我有一个树莓pi 3与我的本地网络上运行express的nodejs服务器。

服务器总是在后台做一些工作,我做了一个休息api来检查进度。

当get被调用时,服务器向我发送一个带有脚本文件的html文件,脚本调用另一个api来获取原始数据并将其注入到html文件中。 (我这样做,所以我不必在服务器上注入数据)

现在,这里的问题:当我在我的电脑上运行服务器一切都很快。但在我的树莓上发送几乎空的html + js + css文件需要长达10秒。我检查了CPU和RAM的用法,它总是在50%左右,所以不应该成为一个问题。

有没有人有一个想法是什么原因造成的?

work.js

var db = require('./db.js');

var storeCollection;

var allowCollection;

var dbToClose;

module.exports.get = get;

function get(query, callback) {

db.connect(function(database){

storeCollection = database.collection(query+"store");

allowCollection = database.collection(query+"allow");

dbToClose = database;

getOne(query, 1, callback);

});

}

function getOne(query, page, callback) {

jsdom.env(searchurl + query + pageparam + page, function (err, window) {

if (err) {

console.error(err);

return;

}

var $ = jquery(window);

var resultlist = $("...");

var count = 0;

if(resultlist.length <= 0){

dbToClose.close();

callback("work");

}

for (var i = 0; i < resultlist.length; i++) {

var item = new Object();

//data parsing

if (item.link) {

item._id = new Buffer(item.link).toString('base64');

db.addOneIfAllowed(storeCollection,allowCollection,item,function(){

if(++count == resultlist.length){

getOne(query, ++page, callback);

}

});

} else{

dbToClose.close();

callback("work");

}

}

});

}

web.js

//rest api

...

//work

updateDatabase();

setInterval(updateDatabase, 60000 * 5);

function updateDatabase() {

timer.start();

db.connect(function (database) {

var persist = database.collection("persist");

persist.find({}).toArray(function (err, persisting) {

database.close();

persisting.forEach(function (q) {

persistAll(q._id);

});

});

});

}

function persistAll(q) {

var workcount = 0;

var time;

function finish(name) {

console.log("persisted "+name);

workcount++;

if (workcount == 6) {

console.log("done persisting");

}

}

time = Date.now();

work.get(q, finish);

otherwork.get(q,finish);

...

}

+1

采取更系统的方法找出影响速度的因素并不是很难。例如,当您完全禁用“背景”任务时,HTTP请求是否更快?或者当你禁用它的一部分(比如说,数据库写入)? –

+0

@robertklep没有数据库调用它有点快,但它并没有太大的区别。我决定制作第二个nodejs服务器,它仅处理api调用,并且像魅力一样工作。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值