当前位置: 首页 > 面试题库 >

jQuery或javascript查找页面的内存使用情况

窦伟
2023-03-14
问题内容

有没有办法找出网页或jquery应用程序正在使用多少内存?

这是我的情况:

我正在使用jquery前端和一个以JSON提供数据的restful后端构建数据密集型webapp。页面被加载一次,然后一切都通过ajax发生。

用户界面为用户提供了一种在用户界面内创建多个选项卡的方式,每个选项卡可以包含大量数据。我正在考虑限制它们可以创建的选项卡的数量,但我认为仅在内存使用量超过特定阈值时才限制它们是很好的。

根据答案,我想作一些澄清:

  • 我正在寻找一种运行时解决方案(而不仅仅是开发人员工具),以便我的应用程序可以根据用户浏览器中的内存使用情况确定操作。
  • 计算DOM元素或文档大小可能是一个不错的估计,但是由于它不包括事件绑定,data(),插件和其他内存中的数据结构,因此可能非常不准确。

问题答案:

更新

如果您想支持所有使用中的主流浏览器,早在2012年是不可能的。不幸的是,目前,这仍然是仅限Chrome的功能(的非标准扩展window.performance)。

window.performance.memory

浏览器支持:Chrome 6+

2012年答案

有没有办法找出网页或jquery应用程序正在使用多少内存?我正在寻找一种运行时解决方案(而不仅仅是开发人员工具),以便我的应用程序可以根据用户浏览器中的内存使用情况确定操作。

简单但正确的答案是“ 否” 。并非所有浏览器都向您公开此类数据。而且我认为您应该放弃这个想法仅仅是因为 “手工”
解决方案的复杂性和不准确性可能会带来比解决方案更多的问题。

计算DOM元素或文档大小可能是一个不错的估计,但是由于它不包括事件绑定,data(),插件和其他内存中的数据结构,因此可能非常不准确。

如果您真的想坚持自己的想法,则应将固定和动态内容分开。

固定内容不依赖于用户操作(脚本文件,插件等使用的内存)。
其他所有内容都被认为是动态的,并且在确定限制时应作为主要重点。

但是没有简单的方法可以对其进行总结。您可以实施一个 跟踪 系统来收集所有这些信息。所有操作都应调用适当的跟踪方法。例如:

包装或覆盖jQuery.data方法,以通知 跟踪 系统您的数据分配。

包装html操作,以便也跟踪添加或删除内容(这innerHTML.length是最佳估计)。

如果保留较大的内存中对象,则还应对其进行监视。

至于事件绑定,您应该使用 事件委托 ,然后也可以将其视为一个固定的因素。

另一个很难正确估计内存需求的方面是,不同的浏览器可能会不同地分配内存(对于Javascript对象和DOM元素)。



 类似资料:
  • 代码的jsfiddle如下:http://jsfiddle.net/4qhr2/ 然而,我不清楚如何使用谷歌Chrome的分析器来验证这是,事实上的情况。堆探查器快照中出现了无数的东西,我不知道如何解码什么是好的/坏的。到目前为止,我在它上面看到的教程要么告诉我“使用快照分析器”,要么给我一个关于整个分析器如何工作的非常详细的宣言。是否可以仅仅将探查器作为一个工具,或者我真的必须了解整个事情是如何

  • 本文向大家介绍python中使用psutil查看内存占用的情况,包括了python中使用psutil查看内存占用的情况的使用技巧和注意事项,需要的朋友参考一下 有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pip install psutil(安装在python中)或conda install psutil(

  • 我正在尝试衡量在Windows7HotSpotJVM中使用大内存页面的性能提升。为了做到这一点,我需要监视JVM内存使用情况,以确保实际使用了大型页面。不幸的是,我无法找到实现这一目标的途径。下面是我所做的设置和测试的描述: 环境设置 我正在使用64位Windows 7终极版进行测试。“将页面锁定在内存中”Windows安全策略已启用,如Java支持大内存页中所述。我还通过运行java版本命令验证

  • 问题内容: 是否有一个准则来估计a消耗的内存量? 寻找类似于这些准则的估计内存使用情况的东西。 问题答案: 如果您查看源代码中的字段,则有: 的评论说 用于存储规范的字符串表示形式(如果已计算)。 假设您不调用,它将保留为零字节。因此是(8 + 4 + 4)= 16个字节+ 。 本身是4 + 4 + 4 + 4 + 4 = 20字节+ 。 20 + 16总共提供了36个字节加上大小,该大小始终是表

  • 问题内容: 我需要在Java中检查服务器的CPU和内存使用情况,有人知道怎么做吗? 问题答案: 如果你正在专门寻找JVM中的内存: 但是,这些仅应作为估计…

  • 问题内容: 我正在使用iPython运行我的代码。我想知道是否有任何模块或命令可以让我检查对象的内存使用情况。例如: 类似于并返回对象使用的内存。 问题答案: 不幸的是,这是不可能的,但是有很多近似答案的方法: 对于非常简单的对象(例如,整数,字符串,浮点数,双精度数),它们或多或少地表示为简单的C语言类型,您可以像John Mulder的解决方案那样简单地计算字节数。 对于更复杂的对象,一个很好