js 关于性能的数据存储

1.JavaScript中四种基本数据存取位置:字面量,本地变量,数组元素,对象成员。(四个都是存在于内存中)

一般来说:[字面量,局部变量]运行速度>[数组,对象成员]

2.内部属性包含了一个函数被创建的作用域中对象的集合。这个集合被称为作用域链。(跨作用域频繁取数据会消耗性能)

function(){
     var a ={b:123}
     function(){
         let c = a.b;
         let d = a.b;     // 应该 let d = c;
    }
}    

3.内存泄露的几种情况

  • 循环引用
  • Javascript闭包
  • DOM插入顺序

一个DOM对象被一个Javascript对象引用,与此同时又引用同一个或其它的Javascript对象,这个DOM对象可能会引发内存泄漏。这个DOM对象的引用将不会在脚本停止的时候被垃圾回收器回收。要想破坏循环引用,引用DOM元素的对象或DOM对象的引用需要被赋值为null。

总结

  • JS的内存泄露,无怪乎就是从DOM中remove了元素,但是依然有变量或者对象引用了该DOM对象。然后内存中无法删除。使得浏览器的内存占用居高不下。这种内存占用,随着浏览器的刷新,会自动释放。
  • 而另外一种情况,就是循环引用,一个DOM对象和JS对象之间互相引用,这样造成的情况更严重一些,即使刷新,内存也不会减少。这就是严格意义上说的内存泄露了。
时间: 2024-08-02 23:40:41

js 关于性能的数据存储的相关文章

html5 之本地数据存储

HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 cookie与webStorage的对比: cookie的缺陷是非常明显的 1. 数据大小:作为存储容器,cookie的大小限制在4KB左右这是非常坑爹的,尤其对于现在复杂的业务逻辑需求,4KB的容量除了存储一些配置字段还简单单值信息,对于绝大部分开发者来说真的不知指望什么了. 2. 安全性问题:由于在HTTP请求中的co

Node.js 数据存储方式的选择

如何为你的 Node.js 应用挑选数据库 Node.js 应用一般有三种方式保存数据. 不使用任何数据库管理系统(DBMS),把数据保存在内存里或直接使用文件系统. 使用关系数据库.例如 MySQL, PostgreSQL. 使用非关系数据库.例如 Redis,MongoDB,CouchDB, PouchDB 无服务器数据存储 (Serverless Data Storage) 从管理上来说,第一种方式是最方便易用的.不需要安装任何数据库,直接使用内存和文件就行了. 无需数据库的内存存储就是使

性能优化之数据存储&DOM编程

数据存储 ·在javascript中,数据存储的位置会对代码整体性能产生重大的影响. ·数据存储共有4种方式:字面量.变量.数组.对象成员. ·要理解变量的访问速度,就要理解作用域.由于局部变量处于作用域的起始位置,因此访问速度比访问跨域作用域变量(即除起始位置之外的外层作用域变量)更快.即变量处在作用域的位置越深,访问速度越慢.这也就说明,访问全局变量的速度是最慢的. 总的来说,字面量和局部变量的访问速度快于数组和对象成员的访问速度. 因此,常见的一些提高数据访问速度的方法有: ①避免使用wi

TI C6000 数据存储处理与性能优化

存储器之于CPU好比仓库之于车间.车间加工过程中的原材料.半成品.成品等均需入出仓库,生产效率再快,如果仓库周转不善,也必然造成生产阻塞.如同仓库需要合理地规划管理一般,数据存储也需要恰当的处理技巧来提升CPU的运算性能. 本文基于TI C6000系列DSP,介绍了与运算性能优化有关的存储器知识.针对具体的数据存储问题,给出相应的代码优化策略,并将容易混淆的概念集中讨论.  名词说明   EMIF: External Memory Interface PMC: Program Memory Co

JS性能优化——数据存取

首先,了解几个概念: 字面量:它只代表自身,不存储在特定的位置.JavaScript中的字面量有:字符串.数字.布尔值.对象.数组.函数.正则,以及特殊的null和undefined值 本地变量:使用var 定义的数据单元 数组元素:存储在JavaScript数组对象内部,以数字作为索引 对象成员:存储在JavaScript对象内部,以字符串作为索引. 每一种数据存储的位置都有不同的读写消耗.大多数情况下,从一个字面量和局部变量中存取数据的性能差异是微不足道的.访问数组元素和对象成员的代价则要高

程序性能优化之网络传输与数据存储优化(五)下

阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将继续从7Z极限压缩和WebP使用来介绍网络传输与数据存储优化: 一.7Z极限压缩 一些文件过大或者是容量太大了,占用硬盘太多空间了.此刻可以使用压缩软件进行压缩,让它的体积变小了.其中极限压缩可以让文件夹或者是文件,压缩的最小.那么如何使用这个极限压缩功能的. ? 1.你要到网上下载这个压缩的程序,点击它,点击[install]. ? ? 2.此刻软件

5 个快速的 Node.js 应用性能提示

本系列文章涵盖许多基础性内容:它给出了应用程序性能管理(APM)的总体概述:指明了实现一个 APM 策略的主要挑战:提出了衡量,评估一个企业级 Node.js 应用程序运行状况的最重要的 5 条指标:并提出了通过 AppDynamics 方式构建一个 APM 解决方案.在文章的最后部分,还提出了一些提示和技巧类以帮助您实现最佳的 APM 策略.具体地说,本文讨论了以下主题: 业务交易优化 快照调优 阈值调优 层级管理 上下文信息捕获 1.业务交易优化 本文章系列里,我会不断重复强调的就是监控方案

session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。 说白了session就是一种可以维持服务器端的数据存储技术。session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功

session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息. 说白了session就是一种可以维持服务器端的数据存储技术.session主要有以下的这些特点: 1. session保存的位置是在服务器端 2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能 3. 单纯的使用session来维持用户状态的话

性能分析-浏览器存储

前端性能分析 浏览器存储 浏览器是由多种存储方式的,如何选择他们呢? cookie 因为HTTP请求无状态,所以需要cookie去维持客户端状态 过期时间 expire cookie的生成方式 http response header中的set-cookie js中可以通过document.cookie可以读写cookie 仅仅作为浏览器存储(大小4KB左右,能力被localstorage替代) cookie中在相关域名下面 -- cdn的流量损耗 httponly localstorage =