Tag: 性能

如何限制node.js中服务器的上传速度?

如何限制node.js中服务器的上传速度? 这甚至是一个select? 情景:我正在编写一些方法来允许用户自动将file upload到我的服务器。 我想限制上传速度(例如)50kB / s(当然可configuration)。

在JavaScript和Node.js中为String类添加函数的性能影响是什么?

在JavaScript中为String类添加函数有什么影响? 这是一个坏主意吗? 例如, // String functions String.prototype.startsWith = function(string) { return (this.indexOf(string) === 0); } String.prototype.empty = function() { //console.log($.trim(this.valueOf())); if($.trim(this.valueOf()) == '') { return true; } else { return false; } }

使用PostgreSQL的Knexselect查询在多个并行请求上性能极度下降

简单来说 我正在开发一个游戏(梦想),我的后端堆栈是与Knex的Node.js和PostgreSQL(9.6)。 我把所有的球员数据都保存在这里,我需要经常请求。 其中一个请求需要做10个简单的select来提取数据,这就是问题的出发点:如果服务器只同时提供1个请求,这些查询是相当快的(〜1ms)。 但是,如果服务器服务器并行请求很多(100-400),查询执行时间极度降低(每个查询可能长达几秒) 细节 为了更客观,我将描述服务器的请求目标,select查询和我收到的结果。 关于系统 我在同一个conf上运行Digital Ocean 4cpu / 8gb液滴和Postgres上的节点代码(2个不同的液滴,相同的configuration) 关于请求 它需要做一些游戏操作,他为数据库中的2个玩家select数据 DDL 玩家数据由5个表格代表: CREATE TABLE public.player_profile( id integer NOT NULL DEFAULT nextval('player_profile_id_seq'::regclass), public_data integer NOT NULL, private_data integer NOT NULL, current_active_deck_num smallint NOT NULL DEFAULT '0'::smallint, created_at bigint NOT NULL DEFAULT '0'::bigint, CONSTRAINT player_profile_pkey PRIMARY KEY (id), CONSTRAINT player_profile_private_data_foreign FOREIGN KEY […]

node.js与客户端Javascript(与Chrome / V8相比)有什么性能优势吗?

我目前正在写一个客户端的JavaScript应用程序执行image processing。 它目前执行的一些操作在浏览器中运行非常缓慢(按2-3秒的顺序) 我希望实现的一个解决scheme是让客户端通过websocket从服务器(websocket而不是AJAX,因为它需要显示实时信息等)接收结果信息,并让服务器完成图像操作的繁重工作 Node.js是一个明显的候选人也被写在Javascript中 – 但我的第一个想法是,将不会有性能优势(我的客户端运行在Chrome / V8和Node.js也是V8) – 我正确地认为这是? 或者Chrome的用户界面需要在服务器端不会感觉到的客户端性能损失? (例如,Chrome是否在后台执行了更多的UI工作,以保证node.js服务器不会花费时间进行响应?) 请问node.js是否有任何性能优势,还是最好考虑使用C或Java web socket服务器来完成这项工作?

我应该使用process.nextTick还是setImmediate进行asynchronous迭代?

我正在研究一个JavaScript库 ,它提供了可以asynchronous迭代的序列上的map / reduce函数。 GitHub上的一个有用的灵魂build议,对于Node.js,我应该使用process.nextTick尽可能快地进行asynchronous迭代。 (图书馆目前在所有的环境中都使用setTimeout ,我也明白这是不理想的。)当谈到Node的时候,我相当缺乏经验,所以我正在阅读这个方法是如何工作的,而且我不清楚它是一个好的select与否。 根据对SO的另一个问题的回答 ,看起来在这种情况下使用setImmediate可能更有意义,因为nextTick显然跳过了悬而未决的I / O事件,这对我来说似乎很糟糕。 这似乎得到了官方Node v0.10.0宣言中的一些评论的佐证: 在v0.10中,每次从C ++调用JavaScript之后, nextTick处理程序都会运行。 这意味着,如果您的JavaScript代码调用process.nextTick ,那么只要代码运行完成,callback函数就会触发callback事件循环。 所以我是对的,迭代序列asynchronous应该用setImmediate ? 或者nextTick会是更好的select吗? (在这两种情况下,一个清楚的解释为什么将不胜感激。)

我应该学习哪种新的语言来实现高性能,高并发性,Web开发?

我对服务器上只有PHP非常有信心。 但是,我有一些额外的时间,我想学习一种新的服务器语言。 我知道如何比较慢的PHP比较新的平衡和线程服务器技术。 我一直在调查: NodeJS:用JavaScript编写,编译并通过Google的V8版本运行。 RingoJS:用JavaScript编写,运行在Mozilla的Rhino基于Java的引擎下。 erultin:Erlang,不知道多less,但似乎超快: http : //www.ostinelli.net/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb/ mochiweb:Erlang也是,而且通常被认为是快速的。 龙卷风:基于Python,似乎是最慢的。 我想知道我应该学什么语言。 如果我使用RingoJS / NodeJS,那么我实际上不需要学习任何东西。 但是,我对Erlang或Python一无所知。 我应该考虑学习一个,如果我的目标是能够build立高端networking服务器(软件/网站)? 一般来说,哪一种语言和图书馆在推动高性能网站方面拥有最大的发展前景? 当然,我可以用C ++来完成所有的工作,但是这似乎很费时,而且我认为Python和Erlang更容易。 带线程的ASP.NET似乎很痛苦,所以,我想我会离开它。 那么Twisted(Python)呢? 或者Eventmachine(ruby)?

玩关系数据库的框架和Node.js非阻塞行为

Play Frameworkbuild议将阻塞IO中继到合适大小的线程池,如下所示: https://www.playframework.com/documentation/2.5.x/ThreadPools 这是关系数据库访问的情况,因为没有可用的非阻塞JDBC驱动程序 (除less数例外) 。 我目前正在学习Node.JS,我无法弄清楚这是如何处理节点。 我没有看到任何需要编码思考节点中的线程池。 那么,node.js中使用的关系数据库驱动程序是否能够执行非阻塞IO? 还是这些计算被传递到幕后的某种工作线程? 从更广泛的意义上说:编写一个非常强大的数据库(关系)的node.js应用程序的正确方法是什么?

为什么这个V8 / Javascript代码执行得如此糟糕?

我一直在寻找一些有趣的编程基准来看看node.js与其他语言相比的performance如何: http ://benchmarksgame.alioth.debian.org/u32/compare.php?lang=node&lang2=php 虽然结果主要是解决algorithm问题,而您通常更喜欢用C或Fortran的变体来解决这个问题,但是对于V8来说,一个testing非常不好: pidigits – 比PHP慢52倍 因为v8在所有其他testing中的performance都比PHP更好,所以我认为在代码方面有些问题,或者是某些特定于V8 / Javascript的实现,使得它的performance非常糟糕。 它是什么? 代码1:V8 // The Computer Language Benchmarks Game // http://shootout.alioth.debian.org // // Contributed by Matthew Wilson // biginteger derived from Tom Wu's jsbn.js var compareTo, multiply, divide, addTo, add, intValue, shiftLeft, nbv; function main($n) { var $i=1, $s="", $d, neg10=nbv(-10), three=nbv(3), ten=nbv(10), g = 1, […]

原生JavaScriptsorting执行比实施mergesort和quicksort慢

我已经实现了一个mergesort和一个quicksort来比较它们与原生JavaScriptsorting。 对于quicksort我试图使用这个algorithm: 在YouTube上查看algorithm 。 两种algorithm都使用尽可能less的内存,对于合并sorting,为每个recursion调用传递一个辅助数组(以避免开销),并为快速sorting开始和结束位置的位置。 我正在使用sorting来pipe理NodeJs应用程序中的大量数据。 下面你有mergesort,quicksort和本地JavaScriptsorting,你可以testing性能 问题是:为什么本机JavaScriptperformance较慢? 在我的情况下: Chrome – 合并sorting:测量:1997.920ms; 快速sorting:测量:1755.740ms; 原产地:措施:4988.105ms 节点:合并sorting:测量:2233.413ms; 快速sorting:测量:1876.055ms; 本机:测量:6317.118ms 合并sorting var length = 10000000; // ten millions; var arr = []; for (let i = length; i > 0; i–) { // random array arr.push(parseInt(Math.random() * 1000000000)); } var mergeSort = function(array) { function merge(arr, aux, lo, […]

缩小Node.js的性能吗?

在浏览器中,缩小和拼接或加载asynchronousJavaScript有着积极的性能影响。 在Node.js中运行的代码也是这样吗? 例如,过多的注释和使用长名称来实例化类的属性通常会显着影响性能和内存使用情况?