有没有一种方法,以防止功能使用全局变量,如document,window,navigator,和其他声明的全局函数?
编辑1:如果我可以选择受限制的全局对象,那将是很好的,因为我想允许该函数用作示例Math对象及其函数...
什么是衡量v8或spidermonkey等javascript引擎性能的准确方法?它应该至少与一个评估和另一个评估没有很大的偏差,可能允许在不同操作系统和不同硬件配置上的不同javascript引擎之间进行排名.
我的第一次尝试是在一个没有任何内容的网页上,我在网页浏览器中加载了该页面.然后我尝试在Google Chrome的javascript控制台中执行此代码,结果非常不同,您将在结果中看到:
mean = function (distr) {
var sum = 0;
for (obs in distr) {
sum += distr[obs];
};
return sum / distr.length;
};
stdev = function (distr,mean) {
var diffsquares = 0;
for (obs in distr) {
diffsquares += Math.pow(distr[obs] - mean , 2);
};
return Math.sqrt((diffsquares / distr.length));
};
var OPs = 1000000;
var results = [];
for (var t = 0; t < 60; t++) {
var start = (new Date()).getTime();
for(var i = 0.5; …Run Code Online (Sandbox Code Playgroud) 我正在使用BackboneJS和Bootstrap,我试图在访问者点击按钮后对某些内容启用滚动间谍.
因此,当用户点击该按钮时,会执行以下操作:
$('#frontPageNav').css('display', 'block'); // It was hidden on load
$('#frontPageNav').scrollspy(); // Activate scrollspy, this is where the error happens
$('[data-spy="scroll"]').each(function () {
var $spy = $(this).scrollspy('refresh'); // I think this is not needed because nothing was invisible before
});
$('#frontPageNav li').on('activate', function () { // This never gets emitted
alert('activate!');
});
Run Code Online (Sandbox Code Playgroud)
我想要窥探的内容是这样的:
<div data-spy="scroll" data-target="#frontPageNav">
<div id="home-top" class="row slide">
</div>
<div id="home-how" class="row slide">
</div>
<div id="home-join" class="row slide">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
页面上没有其他元素有数据间谍属性,所以我觉得这应该是唯一的内容窥探,但显然不是:在页面加载我得到一个错误,Uncaught TypeError: Cannot read property 'top' of …
我将nodejs 中的ws模块用于 Web 套接字服务器,代码的简化版本是这样的:
var WebSocketServer = require('ws').Server
var wss = new WebSocketServer({port: 9001});
wss.on('connection', function (ws) {
// is the ws object created here ?
ws.on('message', function (message) {
if (message[0] === '+') {
ws.name = message.substring(1);
console.log(ws.name+' connected');
}
});
ws.on('close', function () {
console.log(ws.name+' disconnected');
// Will this ws object be deleted ?
});
});
Run Code Online (Sandbox Code Playgroud)
我想知道:
最重要的是:如果大量客户端断开连接并且 ws 对象一直闲置直到它们被垃圾收集,当垃圾收集发生时,我的服务器可能会被锁定很长一段时间,对吗?我是否应该解决将这些 ws 对象存储在另一个对象中的麻烦,以便我可以使用 delete 关键字并在收到关闭事件后立即删除它们?
如果我这样做,我可能会有点像这样:
var WebSocketServer = require('ws').Server …Run Code Online (Sandbox Code Playgroud) 我正在使用nodejs 0.4.7来发出请求,这是我的代码:
var post_data = JSON.stringify({
'compilation_level' : 'ADVANCED_OPTIMIZATIONS',
'output_format': 'json',
'warning_level' : 'QUIET',
'js_code' : code
});
var post_options = {
host: 'closure-compiler.appspot.com',
port: '80',
path: 'compile',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length
}
};
var post_req = http.request(post_options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('Response: ' + chunk);
});
});
post_req.write(post_data);
post_req.end();
Run Code Online (Sandbox Code Playgroud)
我得到的回应是
Response: <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我究竟做错了什么 ?在教程中它说我很乐意向http://closure-compiler.appspot.com/compile发出POST请求...
在PHP中,我如何从Python中实现这样的东西?
class CrowdProcess():
def __init__(self,variable):
self.variable = variable
def otherfunc(self):
print self.variable
Run Code Online (Sandbox Code Playgroud) 我知道它运行得很好,所以开发很好,但由于AuFS,它不会有更糟糕的磁盘和/或网络IO性能吗?
我问这个问题是因为我想了解如何更好地运行 RethinkDB,这意味着它应该在什么样的硬件上运行,应该在什么样的文件系统上运行,以及其他系统配置来最大化它的吞吐量。
我正在尝试尽可能快地用{"n": <counter>, "rand": <Math.random()>}. 我在某处读到这对于 200 个文档的批处理速度更快,所以这就是我要插入的内容。我也在使用柔软的耐用性。我开始了一个 nodejs 进程,我可以平均每秒插入 10k 个文档,非常好。
但是在发生这种情况时,rethinkdb 使用了大约 70% 的一个核心(我有 8 个虚拟核心,它是 i7-4770),而 nodejs 进程使用了 5%。所以看起来CPU不是瓶颈。
一旦我开始另一个 nodejs 进程做同样的事情,两个进程上的每秒插入次数就会下降到大约 4k-5k。同样,CPU 负载保持不变。
我解雇了iotop,我确实在那里看到了很多行动,但不是我所期望的。我在 RAID0 中配置了两个 SSD,快速dd测试表明我可以以大约 800MBps 的速度写入和读取。这远高于 iotop 报告的实际读取和实际写入速度(平均读取 ~14MBps 平均写入 ~50MBps)。
那么我怎样才能耗尽我机器的资源呢?rethinkdb 需要什么才能运行得更快?为什么它不花费更多的资源并具有更高的吞吐量?
关于它运行的更多信息:它是Hetzner 的 EX40SSD,软件 RAID0 中的两个 SSD,ext4 文件系统(明天我将尝试安装它,noatime看看它是否更好)。默认情况下,rethinkdb 配置就是一切,插入是对只有一个分片和一个副本的表进行的。请随时询问我可能忘记提及的任何其他相关问题。
提前致谢。
performance resources database-performance node.js rethinkdb
可能重复:
运算符中的javascript
为什么("a" in ["a","b"])收益率false和(1 in [1,2])收益率true?有没有理由"a"不匹配该数组的第一个元素而1呢?为什么它不能用于字符串?