Tag: 性能

什么时候在Node.js V8中分配和编译closures?

根据我目前关于虚拟机及其行为的假设,我每次打出定义时都会分配和编译闭包。 与在封闭之外声明的函数相比,它们被分配和编译一次(因为它们被放置在某个地方,它们的定义只被命中一次)。 这个假设是否正确? 所以,如果我在socket.on('data', function (data) {…})有一个闭包,V8会在每次 socket收到数据时分配新的内存(并可能重新编译)闭包。

从Node.js应用程序提供图像的最佳方式(使用快递)

我们设置了一个公共文件夹,其中包含50个可移植networkinggraphics格式的小图像,基本上是用于工具栏devise的图标(45×45像素)。 考虑以下用于使用express设置公用文件夹的Node.js代码: app.configure(function AppConfig() { app.set('port', 8080); app.use(express.bodyParser()); app.use(express.errorHandler()); app.use(express.cookieParser()); app.use(express.static(app.root + '/app/public')); // <== contains 50 icons in .png format app.engine('html', require('hbs').__express); app.set('views', app.root + '/views/html'); app.set('view engine', 'html'); }); 由于第一页始终是“login”页面,因此我希望在用户inputlogin详细信息时,所有工具栏图标图像都将caching在第一页加载自己的背景上。 在search如何在后台执行此操作时,我遇到了Image Sprite概念 。 但我需要不同的解决scheme来caching尚未请求的图像。 有没有人能告诉我如何做到这一点? 更新:我试图使用标签本身请求一个单一的图像(.png),这是所有50 大小:0.76MB的图像精灵,现在当我加载login页面加载图像,然后用户可以看到用户界面。 所以问题是我想它先显示用户界面,然后加载像AJAX背景的图像。

为什么node.js对于包含繁重的CPU处理或计算的服务器应用程序不好?

鉴于node.js是为服务器应用程序devise的,并且可以处理比其他竞争解决scheme更多的并发连接,为什么它不适合涉及重处理的服务器应用程序呢?

在Node / V8中如何实现正则expression式匹配?

我遇到过一篇文章 ,显示正则expression式匹配通常使用潜在的低性能algorithm与build议的Thompson NFAalgorithm实现。 考虑到这一点,如何在Node或V8中实现? 是否有可能使用Thompson NFA的JS实现来提高性能,也许如果只使用了有限的特性子集(可能会去除超前或其他“高级”特性)?

加载模块时节点js的性能

我有几个自定义模块,每秒调用数百次,我想确保调用这些模块没有性能影响。 示例模块 – random-string.js module.exports = function() { // Required modules var logs = require(__dirname + '/logs.js'); // Custom logger var uuid = require('node-uuid'); // Simple, fast generation of RFC4122 UUIDS var randomString = uuid.v1() + uuid.v4(); logs.dev(randomString); return randomString; }; 如果我从另一个模块(即。require(__ dirname +'/random-string.js'))调用这个模块,并且每秒钟被调用几百次,那么这是每次读取磁盘到加载logs.js节点UUID?

为什么node.js运行时比Google Chrome控制台慢

我们知道Chrome和node.js在同一个V8 javascript引擎上运行。 我的理解: 铬应该是慢的,它不仅处理内部执行,但也做了额外的用户界面工作 node.js应该很快, 没有额外的UI工作 所以,比较简单的速度testingnode.js的V8的JavaScript 与Chrome的V8 为什么node.js比Chrome慢? 顺便说一句,这是代码: function speedTest(){ console.time("loop"); for (var i = 0; i < 1000000; i += 1){ // Do nothing } console.timeEnd("loop"); }

nodejs – 群集中工作人员的最佳数量

在多核处理器上对nodej进行聚类时, 我通常会看到一些例子 , const numCPUs = require('os').cpus().length; for (let i = 0; i < numCPUs; i++) { cluster.fork(); } 我的问题是 – 如果一个多核处理器正在运行一个反向代理终止ssl(cpu密集型),gzip(cpu密集型)以及其他东西的networking应用程序,还有其他服务器正在执行主要nodejs服务器的cpu密集型工作,产生与CPU核心数量一样多的工人(对于主节点服务器)? 应该运行什么样的testing来find最佳的工人数量?

MongoDB查询在mongo-shell上执行的时间为1ms,但在NodeJS上的执行时间为400ms以上

我有一个大的MongoDB集合,包含超过2GB的原始数据,我使用一个非常简单的查询来从集合中获取特定的文档。 文档大小的范围从10KB到4MB,Id字段被定义为索引。 这是我正在使用的查询(与mongojs模块): db.collection('categories').find({ id: category_id }, function(err, docs) { callback(err, docs.length ? docs[0] : false); }).limit(1); 当我使用MongoDB shell或Robomongo等GUI来执行这个查询时,无论物理大小如何,大约需要1ms的时间,但是当我在NodeJS上执行完全相同的查询时,响应时间从2ms到2s以上取决于数据量。 我只测量接收响应所需的时间,即使在.explain()等待超过500毫秒的情况下,MongoDB分析器( .explain() )显示仅执行一个毫秒即可执行查询。 现在,我可能做错了什么,但我不知道它是什么。 我对NodeJS比较陌生,但过去我曾经使用过MongoDB和PHP,而且从来没有遇到这样的性能问题,所以我倾向于认为我可能以某种方式滥用NodeJS。 我也试过在WebStorm上使用SpyJS进行分析,我看到有很多bson.deserialize调用快速地汇总成一个大堆栈,但是我无法进一步调查,因为SpyJS总是在这个时候崩溃。 可能有关,但我仍然不知道如何处理它。 请指教,任何线索将不胜感激。 编辑:这是db.categories.getIndexes()的结果: [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "my_db.categories" }, { "v" : 1, "key" : { "id" […]

nodejs可以提高性能

我做了nodejs和java之间响应时间性能的比较。 testing环境:操作系统:Ubuntu 10.10服务器:OpenFire 3.7两个服务器组件用Nodejs(0.4.8)和Java(whack API) testing场景:向服务器和服务器组件发送XMPP消息数量的并发客户机数量将回复到随机select的客户机。 正在计算达到响应的总时间。 testing结果: java和nodejs的响应时间保持不变,直到服务器负载增加,每个客户端的消息数量不断增加。 据观察,当每个客户端每秒消息数从5000增加到10000时,Nodej似乎处于较慢的一侧。 原因:我试图找出高负载下Nodejs性能低下的原因,但找不到任何结论。 我发现,因为Nodejs是单线程的进程,它正在同一个线程中读写,所以当负载增加时,I / O写入变慢 请你能解释一下可能的原因吗? 如果您需要更多信息,我将很乐意提供。 我也有testing数据,并从这些数据生成graphics。 谢谢最好的问候,穆罕默德·阿里

采用100%CPU的节点API,节点刻度处理器输出看起来很神秘

我有一个节点API通常处理stream量相当好。 然而,在我们的高峰时期,它进入了开始使用100%CPU并需要重新启动的状态。 重新启动后,在接下来的几天内将恢复正常状态。 使用负载testing网站,我已经能够重现这个问题。 我负载testing的请求非常简单,所以我担心这个问题出现在我正在使用的第三方库中。 我是新来debugging节点,我不知道如何从node-tick-processor输出以下内容。 任何人都可以破译这个? 更新:我正在运行节点v0.10.4 [Unknown]: ticks total nonlib name 5 0.0% [Shared libraries]: ticks total nonlib name 11943 49.1% 0.0% /lib64/libc-2.12.so 10754 44.2% 0.0% /usr/local/bin/node 314 1.3% 0.0% /lib64/libpthread-2.12.so 50 0.2% 0.0% 7fff318b4000-7fff318b5000 5 0.0% 0.0% /lib64/libm-2.12.so 3 0.0% 0.0% /usr/lib64/libstdc++.so.6.0.17 [JavaScript]: ticks total nonlib name 40 0.2% 3.2% LazyCompile: ~read […]