Javascript JS映射自Object.entries内存使用情况

Javascript JS映射自Object.entries内存使用情况,javascript,dictionary,object,memory,Javascript,Dictionary,Object,Memory,我试图找出具有20k条目的javascript映射对象的内存使用情况——key是一个字符串,value是一个由1-2个字符串组成的数组。 我已经创建了两个地图:17k和22k条目。它们在chrome profiler中都有相同的内存使用-如何使用 为什么只有在创建贴图对象的对象从范围中移除后,贴图对象的大小才会不同? 另外,我知道hashmaps是如何工作的,但是如果有人知道js映射如何保持顺序,请让我知道(也许只是一个链表?) 查看分析器,我发现两个地图都需要917kb—这怎么可能? 但制作它

我试图找出具有20k条目的javascript映射对象的内存使用情况——key是一个字符串,value是一个由1-2个字符串组成的数组。 我已经创建了两个地图:17k和22k条目。它们在chrome profiler中都有相同的内存使用-如何使用

为什么只有在创建贴图对象的对象从范围中移除后,贴图对象的大小才会不同? 另外,我知道hashmaps是如何工作的,但是如果有人知道js映射如何保持顺序,请让我知道(也许只是一个链表?)

查看分析器,我发现两个地图都需要917kb—这怎么可能? 但制作它们的对象(obj)需要786kb和1572KB,这是合理的


所以我想也许地图上有一个指向创建它的obj的指针,这就是为什么它们的大小没有差别?然后,我使用createMap函数,以便obj得到垃圾收集。只有这样,映射对象才需要1.9kb和2.3kb,这是意料之中的。

缩放映射很复杂,如果数据大小合适,Hashmap也更有效!你对我的陈述说“不”,然后说了同样的话,除了“参考”而不是“poiter”。为什么当obj超出范围时,映射内存的使用会增加?我确实感觉到你从你看到的度量中得出了错误的结论。也请仔细阅读。“obj
obj
”的值并不意味着
obj
。不知道为什么obj超出范围会使探查器显示地图占用更多内存。
function createMap(){
    var obj = JSON.parse(bigStringRepresentingTheJSON);
    return new Map(Object.entries(obj));
}