Articles of 性能

为什么要做更小的arrays需要更长的时间?

这是一个从1 to n的数组的函数: function MakeList(n){ return Array.from(Array(n).keys()).map(function(x){return x+1;}); } 我计时,所以我可以find这个数组的最快方法: console.log(n); console.time("MakeList"); var ar = MakeList(n); console.timeEnd("MakeList"); 但输出是如此啰嗦! 1 MakeList: 0.897ms 2 MakeList: 0.135ms 5 MakeList: 0.048ms 为什么用1的长度比5长的arrays需要大约20倍? 任何build议最快的方式将不胜感激!

Node.js CPU分析系统调用

调用1 http后端的Node.js应用程序。 在启用了cpu profiler的应用程序上加载一些负载后,我得到了下面的结果。 [自下而上(重型)configuration文件]:注意:百分比显示特定呼叫者在其父呼叫总量中的份额。 占用less于2.0%的呼叫者未被显示。 蜱父母名称53352 41.9%系统调用 15733 12.4%写 系统调用和写入在这种情况下意味着什么。

自动增加Base64 mysql

对我们来说,我们试图在MySQL数据库上使用base64作为唯一的string标识。 有没有可能以自动递增的方式? 我现在发现的唯一方法是用查询来检查它,并且一遍又一遍地扫描一个非常缓慢,烦人的进程,即使是NodeJS也是如此。

mySql在节点js比phpMyAdmin慢得多

我有一个SQL查询,它在mysqlJava模块中的运行速度比在MySql客户端中运行得慢很多,比如phpMyAdmin。 我知道构buildJS对象是有开销的,但我不相信这是唯一的原因: 查询: SELECT `Groups`.`id`, `Groups`.`title`, `Groups`.`owner`, `Groups`.`isDefault`, `Groups`.`createdAt`, `Groups`.`updatedAt`, (SELECT COUNT(*) FROM `View` WHERE `View`.`groupId` = `Groups`.`id`) AS `views`, (SELECT COUNT(*) FROM `Click` WHERE `Click`.`groupId` = `Groups`.`id`) AS `clicks`, `Users`.`id` AS `Users.id`, `Users.UserGroup`.`id` AS `Users.UserGroup.id`, `Users.UserGroup`.`UserId` AS `Users.UserGroup.UserId`, `Users.UserGroup`.`GroupId` AS `Users.UserGroup.GroupId`, `Users.UserGroup`.`owner` AS `Users.UserGroup.owner`, `Users.UserGroup`.`createdAt` AS `Users.UserGroup.createdAt`, `Users.UserGroup`.`updatedAt` AS `Users.UserGroup.updatedAt`, `Users.Activations`.`id` AS `Users.Activations.id`, `Users.Datasets`.`id` […]

基准JavaScript执行与callback函数

我有一些JavaScript,我试图基准执行所需的时间。 问题在于for循环快速完成,同时Item.save()方法的执行尚未完成。 任何build议如何计时,这将考虑循环内容的完整执行时间? 谢谢! var start = new Date().getTime(); var Item = new Item(); for (i = 0; i < 500; i++) { var item = {}; item.name = 5; item.id = 10; item.set = []; Item.save(item, function (err, res) { console.log(res); }); } var elapsed = new Date().getTime() – start; console.log(elapsed); 编辑:这是在一个nodejs服务器上。

expression压力testing

我有一个相当困难的时间来确定我的networking服务器(切诺基)和expressjs网站之间的性能瓶颈。 由于POSTstream量的增长,我们开始不时地看到性能问题。 所以我devise了一个testing,看网站1,2,3和4个实例的突破点是什么,并且由于糟糕的性能(以每秒5个很好,每秒10个很差)而震惊。 根据我的性能logging,一个完整的请求开始到结束在1000-4000毫秒之间开始,在短时间开始之后以线性趋势增加,因此在大约5分钟之后请求需要40,000-60,000毫秒。 在expressjs网站logging中,开始结束请求的性能logging需要100-400毫秒(大部分时间是90-390毫秒,这个时间是等待Java API响应的)。 我已经调查了连接池/最大套接字,但不知道如何使用快速configuration,并且随着不断增长的stream量,我们开始感受到来自每一个减弱性能的热量。 现在我有两个理论:1.压力testing代码有些问题, 2.从压力testing应用程序或expressjs发送请求时,有一个小的连接池。 如果上述任何一个是真的,我不知道如何解决这些问题。 – 压力testing应用程序 – /* * POST stress testing */ var rest = require( "restler"); var u = require( "../underscore")._; var uuid = require( "node-guid" ); var fs = require( "fs" ); var quoteContent = fs.readFileSync( __dirname + "/data/quoteList.json" ); var quotes = JSON.parse( quoteContent ).quotes; […]

加快MySQL中的大量查询语句的性能

我有作为服务器上的cron作业运行的node.js脚本。 它asynchronous接收来自外部数据源的数据(几个并发请求),并使用多个查询语句更新数据库,其中UPDATE查询以分号分隔。 一个8000-UPDATES多查询运行约55秒。 有没有办法来加快整个数据库更新过程? 单个查询非常简单 – 就像 UPDATE my_table SET field1 = smth WHERE id = some_id; 该索引是为id字段创build的。

使用与phantomjs和jenkins集成的pagespeed

我正在尝试使用pagespeed自动化网页性能。 有什么插件可用于phantomjs上运行pagespeed 我们有yslow插件和它在本地工作 http://yslow.org/phantomjs/ 我正在使用命令行,然后将其与Jenkins集成以进行持续集成 谢谢,感谢您的帮助 一些示例代码 phantom.create (ph) -> ph.createPage (page) -> page.open "http://www.google.com", (status) -> console.log "opened google? ", status page.evaluate (-> document.title), (result) -> console.log 'Page title is ' + result ph.exit()

MongoDB对每个用户的db.collection.distinct()的效率与保存为数据库条目和检索结果

在我的nodeJS应用程序中,我查询特定数据库字段的不同值的mongoDB 。 这将返回大约3000个值的数组。 每个用户都必须为每个会话获取这些数据(因为它是运行应用程序不可或缺的部分)。 我想知道是否更有效(和更快)为每个用户做到这一点: db.collection.distinct({"value"}, function(data){ // save the data in a variable }) 或者我是否应该在服务器端加载不同的值(比如每天一次),然后将其保存为每个用户检索的数据库条目,如下所示: // Server-side: db.collection.distinct({"value"}, function(data){ // save the data to MongoDB as a document }) // Client-side: db.serverInfo.find({name: "uniqueEntries"}, function(data){ // Save to browser as a variable }) 我自己testing过这个,不会注意到很大的区别,但是我是目前唯一使用这个应用程序的人。 一旦我得到10/100/1000 / 10,000用户,我想知道哪里最好用。

nodejs,发电机表获取操作callback或asynchronous

伙计们,我正在编写一个从DynamoDB表中获取结果的API,并将JSON放回浏览器。 下面的代码工作,并返回所需的结果…但是,在阅读了asynchronous和callback后,它变得重要,我知道我是否应该以另一种方式写这个? 以下几百个并发的API调用程序能够很好地扩展吗? 这段代码似乎没有使用callback。 它是asynchronous的吗? var restify = require('restify'); var AWS = require('aws-sdk'); AWS.config.update({region: 'us-east-1'}); var db = new AWS.DynamoDB(); function myFunction(req, res, next) { var params = { TableName : 'myTable', KeyConditions : { "number" : { "AttributeValueList" : [ { "S" : req.params.simethingid } ], "ComparisonOperator" : "EQ" } } } db.query(params, function(err, […]