Articles of 内存

如何增加Ionic的Javascript堆大小

我正在使用–release和–prod标志运行Ionic应用程序的内存不足问题。 不幸的是,当它接缝的时候,Node允许使用的内存空间对于这个过程是不够的,而且会产生下面的错误(可能在没有内存块可用于执行操作的情况下): 正如在这个答案中所build议的,我试图在构build命令之前利用package.json start脚本中的max_old_space_size标志无效。 主要是因为节点进程在设置标志后由Ionic CLI方式内部运行。 我也尝试用这个答案中build议的更大的堆大小来重新安装Ionic,但是这似乎只解决了Ionic软件包本身安装期间的内存限制问题,而不是通过CLI使用Ionic进行的任何后续操作。 在此先感谢您的帮助。 🙂 离子信息: cli packages: (D:\ionic\<…>\node_modules) @ionic/cli-utils : 1.9.2 ionic (Ionic CLI) : 3.9.2 global packages: Cordova CLI : 7.0.1 Gulp CLI : CLI version 3.9.1 Local version 3.9.1 local packages: @ionic/app-scripts : 2.1.4 Cordova Platforms : android 6.2.3 ios 4.5.0 Ionic Framework : ionic-angular 3.3.0 System: Android […]

为什么客户端使用更多的内存不同的服务器?

我在NodeJS请求计数和.Net Core上做了一些性能testing,我发现了我期望的。 很明显,.Net Core的请求数量要高得多。 但是,我发现特别有趣的是客户端,不用重新编译代码,实际上通过NodeJS服务器和.Net核心服务器使用更多的RAM。 RAM使用差异实际上是相当显着的,在那里我观察到NodeJS服务器的性能高于.Net核心服务器。 使用.Net Core 2.0.0和NodeJS 8.3.0 有问题的flooder。 使用.Net核心服务器,在最坏的使用情况下,运行使用从480MB到700MB的任何地方。 使用NodeJS服务器,我的电脑上使用了700MB到1.4GB的RAM(两者都是最大的CPU)。 Flooder代码 HttpServer.cs is the actual code that does the work Source.cs is where the HttpServer is run in a separate task to allow Console.ReadLine separately. Git链接到.Net核心服务器 NodeJS服务器代码 const http = require('http') let serv = http.createServer((req, res) => { res.write("Hello!") // res.destroy() // […]

Node.JS Dynamodb内存问题与put

现在我遇到了在文档客户端上使用Dynamodb的put方法的问题。 当我现在用put方法运行我的程序时,内存从70MB开始,跳到90MB,然后继续稳定到65MB左右。 Uncommented了我的程序的内存跳转到90MB,并不断增长。 var params; for (var i = 0; i < tuples.length; i++){ if(tuples[i][1] != ""){ params = { TableName: "wordTable2", Item:{ "word":tuples[i][1], "url":tuples[i][0], "info":tuples[i][2] } }; var dynamobd = new AWS.DynamoDB.DocumentClient(); dynamobd.put(params, function(err, data){ //if(err) console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2)); //else console.log("Added item:", JSON.stringify(data, null, 2)); }); dynamobd = […]

内存高效的方法来复制一个数组

所以基本上我试图find一个内存有效的方法来复制一个数组。 假设我们有arr1 ,其中包含500000个true值元素: var arr1 = []; for (var i = 0; i < 500000; i++) { arr1[i] = true; } 在Node.js中,占用大约32.3 MiB(包括节点启动时的18.7 MiB)。 现在,很明显,当你引用arr1 ,将不分配内存: var arr2 = arr1; 现在,当我执行一个arr1到arr2的副本: var arr2 = arr1.concat(); 这个过程占用36.2 MiB,所以大约4 MiB。 这里是:不pipe我做什么来清空或擦除原始数组,分配给该数组的内存都不会被垃圾收集器释放或拾取。 假设我有: arr1.length = 0; delete arr1; arr1 = undefined; arr1 = arr2.concat(); 多亏了这一点,这个过程现在占据了39.8 MiB。 那么这里究竟发生了什么? 是否有一些秘密引用原始数组的节点(或任何JS引擎)试图隐藏我? […]

当用“大”数据启动node.js中的webworker时,内存快速上升

我有典型的代码在节点中启动webworker: var Threads = require('webworker-threads'); var worker = new Threads.Worker(__dirname + '/workers/myworker.js'); worker.onmessage = function (event) { // 1. // … create and execute cypher query … }; // Start the worker. worker.postMessage({ 'data' : data }); 在1.我发送一小块处理的数据到一个Neo4J分贝。 对于小data这个工作非常好,但是当数据稍微变大时,工作人员就开始挣扎了。 我想要处理的实际data是一个csv,我用BabyParseparsing得到一个具有149000个属性的对象,每个属性有17个属性。 (149000行×17列= 2533000属性)。 该文件是17MB。 当做这个节点将分配大量的内存,并最终崩溃53%的内存分配。 机器有4GB。 工人看起来大致如下: self.onmessage = function (event) { process(event.data.data); }; function process(data) […]

Lambda /无服务器内联需求与头部需求

背景 我正在使用AWS Lambda和API Gateway构buildAPI。 而不是将每个API端点分成单独的lambda函数,而是将它们包装到单个库中,并使用aws-serverless-express库。 题 鉴于从内存使用的angular度来看,只有一部分整个API可以用于单个Lambda执行(为了降低成本),在以下几点之间还是有区别的: var myModule = require("mymodule"); … function handleSomething1() { myModule.doSomething(); } function handleSomething2() { … } 要么 function handleSomething() { require("mymodule").doSomething(); } function handleSomething2() { … } 因此,举例来说,一个API请求可能会导致在handleSomething2 Lambda函数之前,只handleSomething2 。 在这种情况下,我们通过调用var myModule = require("mymodule");有效地浪费内存var myModule = require("mymodule"); 顶部? 我想更直接的问题是,当我var myModule = require("mymodule")是否node.js运行时真的为myModule分配内存在那一刻? 或者,直到我真的用myModule 做了什么之后,它才真正成为一个myModule ?

NodeJS 0.3.1应用程序泄漏内存

我有一个相当简单的NodeJS应用程序,它只是一个接受请求并使用Readability(基于https://github.com/arrix/node-readability )的formsparsing内容的shell。 问题是,我注意到应用程序泄漏内存 – 我已经运行node –trace-gc跟踪node –trace-gc和内存缓慢build立与每个请求偶尔gc传递无所事事。 $ node –trace-gc server.js Scavenge 2.3 -> 2.3 MB, 1 ms. Mark-sweep 3.5 -> 2.9 MB, 2 ms. Scavenge 4.4 -> 3.8 MB, 0 ms. 16 Feb 10:57:51 – Server started on PORT 8000 Scavenge 5.9 -> 5.0 MB, 2 ms. Mark-sweep 5.0 -> 4.2 MB, 3 ms. […]

Node.js:严重的内存泄漏更新版本中的错误?

有什么问题? 首先,我发现node.js模块或代码有问题,因为当我访问我的页面时,每次访问后内存都减less了,并且没有被释放回来。 经过几个小时的debugging,我找不到任何问题,所以我尝试了默认的node.js服务器示例,以查看问题是在我的代码还是在node.js本身。 如何重复该问题: 所以我创build了这样的服务器: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80); console.log('Server running at port 80'); 我访问了mydomain.com并重复刷新,并且空闲的内存不断下降,甚至在我释放刷新之后,内存保持在同一级别,所以node.js保留它。 那么这里有什么问题? 环境 我正在testingubuntu 12 , max os x 10.8.3与node v0.9.0 , node v0.10.0 , v0.10.2 , v0.10.4 , v0.11.1存在的问题,并在node v0.8.21它工作正常,这就是为什么我说这可能是一个新版本的错误。

将一个Node.js应用程序消耗JSON文件共享内存之间的连接?

我试图决定在数据库中还是在平坦的JSON文件中保存静态数据(每晚更新,而不是实时),以提供Node.js应用程序。 在初步testing中,平面文件方法是两倍的速度。 我的问题是关于使用文件方法时的内存问题。 如果我的Node.js应用程序从文件中读取数据,然后执行JSON.parse并将该对象传递给模板以进行渲染,那么每个用户连接的数据内存大小是否会重复? 即如果数据文件是1MB,并且有1000个并发用户,那么在此期间是否消耗了1000MB的服务器内存?

Javascript / Node.js数组内存pipe理

我有一个使用数组作为队列的场景,而且我对这个场景有一个关于内存的问题。 首先,我在全局中创build一个数组对象,并创build一个生产者,将元素不间断地推送到数组中。 var arr = []; function runningProducer() { setInterval(itemProducer, 50); function itemProducer() { var item = generateItem(); arr.push(item); } function generateItem() { return { a: Math.random(), }; } } 然后,我创build一个客户在1秒内清除数组 function runningCustomer() { setInterval(clearQueue, 1000); function clearQueue() { var t = arr.concat(arr); arr = []; } } 并且运行上述function一段时间,我发现内存一直在增长。 setInterval(() => { var mem = […]