`
suqing
  • 浏览: 186783 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

前端性能测试(二):内存占用

 
阅读更多

首先介绍下常用术语:

内存分析的常用术语,如果有java或者.Net变成经验也许你会更熟悉它们。
对象大小 Object Sizes
保留路径 
Dominators(统治者,我觉得就是父节点的意思)
一个对象A的统治者是从跟节点到A对象的每个简单路径上的对象。也就是,如果统治者对象从堆中移除,对象A到GC根节点将不可达,被抛弃。
统治者对象构成了一个树型结构,因为每个节点有确定的一个统治者。每个对象的统治者缺少直接到达其他对象的路径,也就是,统治者树不是一个生成树。
像Collection集合对象在它们支配其他对象的时候会保留大量内存。这种树节点被称为积累点。

具体细节
这部分介绍V8 JavaScript虚拟机。阅读这部分有助于堆快照的理解。

JavaScript Objects Representation
Number可以用31位整型值(被称为small integers或者SMIs),或者堆对象(被称为heap numbers)。后者用于不适合用SMI格式存储的值,比如double,或者值需要被boxed,比如为它设置属性。

String型既可以被存储在VM堆,又可以存储在浏览器内存中。从web接收内容,没有复制到VM堆中,而是创建一个被包装的对象,被用来和其他存储通信。

当2个String合在一起,它们的内容最初是分开存储的,只是逻辑上合并,通过一个称为cons string的对象实现。只在需要的时候才会合并cons string的内容,比如创建一个需要加入字符的子字符串。

Array在 V8 VM广泛使用,用于存储大量的数据。键值对通过Array备份。因此,数组是JavaScript对象的基本构建块。一个典型的JavaScript对象具有2个数组:一个用来存储属性名称,另一个存储数字元素。当属性的数量非常小的情况下,可在内部存储为JavaScript对象本身。

一个Map对象描述对象的类型和它的布局。例如地图是用来描述隐式对象的层次结构,如下所述:
对象组 Object Groups
每个本地对象组是由互相引用的对象组成。例如,一个DOM子树,每个节点都有一个父链接,链接到下一个孩子节点或者兄弟节点,从而形成一个联通图。需要注意的是本机对象不在JavaScript堆——这就是为什么他们的大小为零。相反,创建wrapper objects。每个包装对象持有响应本地对象的引用,用来重定向对这个包装对象的命令。一个租对象包含包装对象。然而,这并不会创建一个无法回收的周期,GC足够聪明到释放那些不再被组对象引用的包装对象。但忘记释放一个单一的包装对象会保留整个组和相关的包装。











分享到:
评论

相关推荐

    浅谈H5前端性能测试实践1

    在本文中,我们将探讨H5前端性能测试的实践方法,主要关注H5页面加载过程、白屏问题的分析以及解决卡慢问题的策略。H5因其灵活性、轻量化和跨平台特性,在各种业务场景中广泛应用,但其性能表现相较于原生应用常常略...

    《软件性能测试、分析与调优实践之路-第二版》ppt 课件总结

    ### 《软件性能测试、分析与调优实践之路-第二版》PPT课件总结 #### 一、软件性能测试的重要性及目标 1. **理解系统性能指标**: - **并发访问量**:评估系统在高并发环境下的承载能力。 - **平均响应时间**:...

    性能测试方案

    2. 性能测试:逐渐增加系统负载,观察系统在不同压力下的性能指标,如吞吐量(TPS,Transactions Per Second)、响应时间和资源利用率(CPU、内存)。 3. 压力测试:进一步提高负载,直到系统达到临界点,分析系统...

    Seafile性能测试报告.docx

    - **Web前端性能**:报告未详细说明Web前端的性能测试,但通常前端性能优化包括页面加载速度、响应时间等,可以进一步进行测试和优化,确保用户界面的流畅体验。 总的来说,Seafile在上述测试条件下表现出良好的...

    3_Web和APP性能测试.pdf

    WEB前端性能测试是指对WEB系统的客户端性能进行测试和优化,以提高WEB应用程序的响应速度和用户体验。WEB前端性能测试的主要关注点是浏览器的渲染性能、静态资源的加载速度、接口的响应时间等方面。 在WEB前端性能...

    WEB前端测试点汇总整理

    - **内存占用**:监控应用运行时的内存占用,防止内存泄漏。 6. **安全测试** - **XSS攻击**:防止跨站脚本攻击,测试输入数据是否被正确转义和过滤。 - **CSRF攻击**:验证防止跨站请求伪造的措施,如令牌验证...

    性能测试调优

    ### 性能测试调优知识点概述 #### 一、操作系统性能分析基础 ##### 1.1 操作系统性能分析介绍 - **操作系统角色**: 操作系统作为计算机硬件和软件之间的桥梁,负责管理计算机系统的硬件(如CPU、内存、磁盘等)和...

    java问题性能测试分析流程.doc

    性能测试不仅包括对系统响应时间、吞吐量、并发能力等方面的评估,还涉及对内存占用、CPU使用率等指标的监控。本文档将详细阐述Java问题性能测试的分析流程,以及常用的分析工具。 1.1. 简介 性能测试是通过模拟...

    Seafile性能测试报告

    **二、Seafile Web前端性能** 尽管报告未详细提供Web前端访问的性能数据,但可以推测,Seafile的Web界面性能应该与服务器硬件配置、网络条件以及并发用户数量等因素密切相关。在良好的硬件环境下,Web前端应能够...

    Web性能测试方案.pdf

    资源利用率是指CPU利用率和内存占用率。 测试内容 Web性能测试内容包含压力测试、负载测试、前端连接测试。压力测试是指在一定饱和状态下系统的处理能力。在负载测试的基础上,继续加压到一定阶段即是压力测试。...

    接口测试汇总--完整版本

    - **性能测试**:前端性能测试更多关注客户端性能(如CPU占用率、内存消耗等),而接口性能测试侧重于服务器端性能(如响应时间、并发处理能力等)。 #### 第二部分:为什么要做接口测试? 1. **系统复杂度增加**...

    性能测试方案报告-模板.doc

    描述如何执行测试脚本,以及如何实时监控系统性能,包括CPU使用率、内存占用、网络流量等关键指标。 10. **结果分析与报告** 分析测试数据,识别性能瓶颈,提供改进建议,并形成测试报告,供项目团队和利益相关者...

    阿里云-性能测试服务最佳实践-D.docx

    【阿里云性能测试服务最佳实践】 在阿里云的性能测试服务中,企业可以利用一系列工具和最佳实践来确保其IT系统的高效稳定运行。本实践主要针对门户网站的性能优化,涉及了压力测试、负载测试、稳定性测试等多个方面...

    前端开源库-leakage

    它允许开发者在不同的测试用例间比较内存占用,以找出可能的泄漏源。这个库的使用通常包括以下步骤: 1. **集成到测试框架**:leakage 可以与多种流行的测试运行程序(如Jest、Mocha等)集成。这使得在执行常规测试...

    软件工程与软件性能优化技巧.pptx

    2. **减少资源占用:** 降低资源消耗有助于节约成本,提高资源利用率。 3. **降低成本:** 通过优化性能可以减少服务器和带宽等硬件投入。 4. **满足市场需求:** 在竞争激烈的市场环境中,优秀的性能能够吸引更多...

    成功的Web应用系统性能测试

    【Web应用系统性能测试】是确保系统稳定性和用户体验的关键步骤。在进行性能测试时,我们需要考虑多种因素,包括但不限于Web服务器配置、FTP服务、日志服务器以及邮件中继服务等。性能测试的目标是评估系统在高负载...

    某项目性能测试报告

    ### 某项目性能测试报告知识点解析 #### 一、测试环境 **1.1 硬件环境** - **数据库服务器(虚拟机)** - **CPU**: Intel Pentium D CPU 3.2GHz - **内存**: 512MB - **磁盘**: 15G - **网络**: 10.0Mbps - ...

    WEB Tours订票系统性能测试.doc

    记录测试过程中的系统性能参数,如CPU使用率、内存占用、网络带宽等,用于分析系统性能。 通过以上测试步骤,我们可以全面了解WEB Tours订票系统在实际运行中的性能状况,找出可能存在的性能问题,并提出优化建议,...

Global site tag (gtag.js) - Google Analytics