Tag: 性能

Redis性能问题?

我试图把一些沉重的负载放在我的Redis上进行testing,并找出任何上限。 首先我加载了大小为32个字符的大小为32个字符的50,000和100,000个键。 这两个关键尺寸都花了不到8-15秒。 现在我试着把4kb的数据作为每个键的值。 首先10000个按键需要800毫秒设置。 但是从这个angular度来看,它逐渐变慢,设置5万个键需要40分钟。 我正在用node_redis(Mranney)加载数据库。 我正在做什么错误,或者是Redis的大小是4 KB? 我现在发现的另一件事情是,当我运行另一个客户端并行到当前一个,并更新密钥第二客户端完成在8秒内加载4万个值的50000密钥,而第一个客户端仍然永远做它的事情。 这是在节点或Redis库中的错误? 这是令人震惊的,不能接受的生产。

我如何更快地匹配这个文本?

我正在为名字build立一个自动build议。 当用户在文本框中input时,它会碰到服务器并运行: var names = [ list of 1000 names ]; //I have a list of 1000 names, this is static. var query = 'alex'; var matched_names = []; //This is when it gets slow…. names.forEach(function(name){ if(name.indexOf(query) >= 0){ matched_names.push(name); } }); return matched_names; 我怎样才能使这个更快? 我正在使用Node.js

Loggly的最大吞吐量是多less?

Logcl每秒处理多less个请求? 我只能得到每秒处理10-20个请求,我想知道这是否正常。

在express上预编译生成的jade模板会有好处吗?

在生产中使用jade-lang的时候,我是否会从某种forms的中间件中受益,这些中间件会预编译所有的.jade视图,然后在res.render中使用它们? 或者当你做NODE_ENV =生产时会自动发生吗? 我只是在探索如何加速生产中的玉石渲染的选项。

MMO WebSocket服务器:Node.js还是C ++?

我一直在想用WebSockets做一个实时的networking游戏。 我知道如何使用Node.js,而且很有诱惑力。 但在我看来,C ++由于其速度似乎成为stream行的服务器语言。 我应该把它放在Node.js中去,以后再担心C ++,还是现在应该学习C ++,并从头开始学习C ++?

nodejs / v8 flamegraph中使用perf_events的未知事件

我试着用Brendan Gregg 在这里描述的使用Linux perf_event进行nodejs分析。 工作stream程如下: 使用–perf-basic-prof运行节点> 0.11.13,它会创build/tmp/perf-(PID).map JavaScript符号映射的/tmp/perf-(PID).map文件。 使用perf record -F 99 -p `pgrep -n node` -g — sleep 30捕获堆栈perf record -F 99 -p `pgrep -n node` -g — sleep 30 使用此库中的stackcollapse-perf.pl脚本折叠堆栈 使用flamegraph.pl脚本生成svg火焰图 我得到以下结果(开头看起来非常好): 问题是有很多[unknown]元素,我想应该是我的nodejs函数调用。 我假设整个过程在第3点失败,其中perf数据应该使用由–perf-basic-prof执行的node / v8生成的映射来折叠。 创build/tmp/perf-PID.map文件,并在节点执行过程中向其写入一些映射。 如何解决这个问题呢? 我正在使用CentOS 6.5 x64,并且已经尝试使用节点0.11.13,0.11.14(包括预构build和编译),但都没有成功。

为什么+ =(加法赋值,加上相等)在节点中如此慢?

在某些版本的节点中, a += b明显比a = a + b慢,但在浏览器和更高版本中相似。 是什么让他们跑得如此不同呢? node v6.10.0 (V8 5.1.281.93) ,速度降低75%,反转速度提高4倍 node v8.0.0 (V8 5.8.283.41) ,慢86%,反转速度快7倍 node v8.2.1 (V8 5.8.283.41) ,慢86%,反转速度快7倍 node v8.3.0 (V8 6.0.286.52) ,类似 node v8.7.0 (v8 6.1.534.42) ,类似 node v8.9.2 (V8 6.1.534.48) ,类似 chrome 62.0.3202.94 (V8 6.1.534.42) ,相似 safari 11.0.1 ,类似 编辑:发现它与节点的v8引擎从5更新到6有关。 片段: const iter = 10 * 1000 […]

模拟虚拟世界:连续或离散的步骤?

我正在做一些类似于Polyworld的东西,这意味着我将模拟虚拟世界,在那里爬虫小跑,吃东西和进化。 我是用Node.js做的,我打算使用物理和neural network,但是我不确定更新世界的最佳方式是什么,更具体地说,如果更新函数将delta时间作为参数,或者每次做同样的事情,独立于最后一次被叫的时间? 两种方式有什么好处? 编辑:我反对不断更新的一点是,我想要实现某种间隔,例如,每20个模拟秒食物块产卵。 如果dt变得不同于1(或者1的一小部分),那么这将永远不会精确地工作。 再次,如果我去离散更新,更新不关心多less时间过去了,我将无法“减慢时间”。 当我在一个function强大的服务器上工作并在浏览器中进行渲染时,我认为更新会经常发生,而且我需要一种减慢时间的方法,而不会影响仿真,所以我可以看到发生了什么。

更快的方法是:在MongoDB / Mongoose中查找()。limit(1)或者findOne()

我读过MongoDB的findOne()比find().limit(1)慢得多的消息,但是我也听说过。 实际上现在的真相是什么? 文章从2013年3月起 :“使用find()+ limit()明显更快,因为findOne()将总是读取+返回文档,如果它存在find()只返回一个游标(或不),只读取数据如果你遍历游标。“ SE在2011年的回答是 :“如果find()。limit(1)文件被检索到,那么数量级的速度差异似乎就消失了,而且我不能重现与MongoDB JavaScript驱动程序的主要速度差异。 MongoDB Java驱动程序“。 我希望无论答案是什么,这也符合使用Mongoose的find().sort().limit(1)和findOne() 。

Dustjs:表演呢?

我喜欢JS的这个模板库的语法。 我将在Node.js脚本中使用它,因此,性能非常重要。 有人试过这个吗? (他们的网站工作太慢,让我觉得他们的图书馆工作足够快:))。