为什么应用JSON.stringify会占用这么多内存
Why does applying of JSON.stringify takes so much memory?
以下是NodeJS代码的示例:
function toMB (byteVal) {
return (byteVal / 1048576).toFixed(2);
}
console.log('Node memory usage:', toMB(process.memoryUsage()['heapUsed']) + ' MB');
var veryLongString = Array(10000000).join('qweqweqweqweqweqweq');
console.log('Node memory usage after string creation:', toMB(process.memoryUsage()['heapUsed']) + ' MB');
console.log('String memory length: ', toMB(Buffer.byteLength(veryLongString)) + ' MB');
JSON.stringify({'str': veryLongString});
console.log('Node memory usage after "JSON.stringify" apply:', toMB(process.memoryUsage()['heapUsed']) + ' MB');
我得到了以下结果:
Node memory usage: 2.01 MB
Node memory usage after string creation: 183.25 MB
String memory length: 181.20 MB
Node memory usage after "JSON.stringify" apply: 545.37 MB
为什么应用JSON.stringify后内存使用量增长了3倍(!!!)?
不使用";veryLongString":
function toMB (byteVal) {
return (byteVal / 1048576).toFixed(2);
}
console.log('Node memory usage:', toMB(process.memoryUsage()['heapUsed']) + ' MB');
JSON.stringify({'str': Array(10000000).join('qweqweqweqweqweqweq')});
console.log('Node memory usage after "JSON.stringify" apply:', toMB(process.memoryUsage()['heapUsed']) + ' MB');
具有相同的结果:
Node memory usage: 2.00 MB
Node memory usage after "JSON.stringify" apply: 545.36 MB
行:
JSON.stringify({'str': Array(10000000).join('qweqweqweqweqweqweq')});
创建包含json的新字符串对象。类似这样的东西:
{"str":"qweqweqweqweqweqweq.........."}
现在我们有两个字符串:)
相关文章:
- 重复应用 d3 转换导致的内存泄漏
- 为什么应用JSON.stringify会占用这么多内存
- 使用应用程序脚本在内存中创建新blob
- 在 wavesurfer 中更改音频 url.js加载会导致 AngularJS 应用程序中的内存泄漏
- 如何在 javascript 中创建表并保存在内存中,以便在 Web 应用程序内的另一个页面上使用
- 全局变量 VS Web 应用中的本地存储和内存问题
- Socket.io 聊天应用程序显示检测到的事件发射器内存泄漏.添加了 11 位听众.使用 emitter.setMax
- 如何在HTML5中实现应用程序范围的内存缓存
- iOS Safari内存泄漏导致应用程序无法使用
- Javascript应用程序-内存泄漏
- 捕获单页应用程序的JavaScript内存泄漏
- 识别内存泄漏的方法'Angular应用程序中的原点
- 如何在PhoneGap应用程序中调试内存使用率攀升
- Chrome在使用单页应用程序时增加系统内存分配
- 在开发移动web应用程序时测量内存使用情况
- IIS 7.5 Asp.net应用程序在浏览器上的内存使用持续增长
- 加速器合金应用中的内存管理
- XLS内容从云端同步到iOS或Android应用内存的最佳策略
- 是否有一种方法可以将文件保存到设备(android或ios)内存,而无需在web应用程序中使用phonegap文件Api
- 查找Node.js / Express.js应用程序的内存泄漏