domNode 文档表示的大内存占用
Big memory footprint of domNode document representation
我有一些相对较小的 HTML 文档 - 只有几十 table 行,有几列,其中一列有文本类型信息,另一列包含带有提交按钮的简约表单,即form/button 在该列的每一行中。没什么特别的。 CURL 报告我的 HTML 文档总重量约为 26 KB。但是,当我在 Firefox 浏览器中检查文档内存占用时,我得到了这张图片:
意味着整个文档的 domNode 表示是 1 MB!这意味着与普通 HTML 输出大小相比,完整文档的 domNode 表示的开销约为 40 倍!问题是 - domNode 类型有什么特别之处?为什么浏览器需要如此多的额外开销数据?
恐怕你的比较不正确。
就像有人问“为什么这辆车的设计图重 1.5 公斤,但汽车本身重 1500 公斤?开销是 1000 倍!”
HTML 代码只是 HTML 解释器(例如网络浏览器)的高级蓝图。
浏览器解析代码并创建文档对象模型(DOM),其中每个节点都是一个对象并具有一些属性。这需要内存。
请查看下面的代码片段,或者更好的是,打开 Firefox 控制台并输入 document
。
你会看到很多东西(甚至在空的后面<html></html>
)。
console.log(document)
.as-console-wrapper {max-height:100% !important; top:0}
我有一些相对较小的 HTML 文档 - 只有几十 table 行,有几列,其中一列有文本类型信息,另一列包含带有提交按钮的简约表单,即form/button 在该列的每一行中。没什么特别的。 CURL 报告我的 HTML 文档总重量约为 26 KB。但是,当我在 Firefox 浏览器中检查文档内存占用时,我得到了这张图片:
意味着整个文档的 domNode 表示是 1 MB!这意味着与普通 HTML 输出大小相比,完整文档的 domNode 表示的开销约为 40 倍!问题是 - domNode 类型有什么特别之处?为什么浏览器需要如此多的额外开销数据?
恐怕你的比较不正确。
就像有人问“为什么这辆车的设计图重 1.5 公斤,但汽车本身重 1500 公斤?开销是 1000 倍!”
HTML 代码只是 HTML 解释器(例如网络浏览器)的高级蓝图。
浏览器解析代码并创建文档对象模型(DOM),其中每个节点都是一个对象并具有一些属性。这需要内存。
请查看下面的代码片段,或者更好的是,打开 Firefox 控制台并输入 document
。
你会看到很多东西(甚至在空的后面<html></html>
)。
console.log(document)
.as-console-wrapper {max-height:100% !important; top:0}