2015更新
回顾2012年,如果您想支持所有主要浏览器的使用,这是不可能的。遗憾的是,现在这仍然是一个仅限Chrome功能(window.performance
的非标准扩展)。
window.performance.memory
浏览器支持:Chrome 6+
2012答案
有没有方法可以查找网页或我的jquery应用程序正在使用多少内存?我正在寻找运行时解决方案(而不仅仅是开发人员工具),以便我的应用程序可以根据用户浏览器中的内存使用情况确定操作。
简单但正确的答案是没有。并非所有浏览器都向您公开此类数据。而且,我认为您应该放弃这个想法,因为“手工制作”的解决方案的复杂性和不准确性可能会带来更多问题。
计算DOM元素或文档大小可能是一个很好的估计,但它可能会非常不准确,因为它不包括事件绑定、data()、插件和其他内存数据结构。
如果您真的想坚持您的想法,您应该分离固定和动态内容。
固定内容不取决于用户操作(脚本文件、插件等使用的内存)
其他所有都被视为动态内容,并且在确定限制时应该是您的主要关注点。
但是没有简单的方法来总结它们。您可以实现一个“跟踪”系统来收集所有这些信息。所有操作都应调用相应的跟踪方法。例如:
包装或覆盖jQuery.data
方法,以通知“跟踪”系统您的数据分配情况。
包装html操作,以便添加或删除内容也会被跟踪(innerHTML.length
是最佳估算)。
如果保留大型内存对象,则还应对其进行监视。
在事件绑定方面,你应该使用 事件委托,这样也可以被视为一个相对固定的因素。
另一个使正确估计您的内存需求变得困难的方面是,不同的浏览器可能会以不同的方式分配内存(用于Javascript对象和DOM元素)。