【问题标题】:what takes up more space: an object with 2 keys or 2 variable values? Which is better?什么占用更多空间:具有 2 个键或 2 个变量值的对象?哪个更好?
【发布时间】:2024-01-20 07:22:02
【问题描述】:

或者它们实际上是一样的?如果我知道一个函数只需要 2 条信息,那么使用其中一种更好吗?

const twoKeyValPairs = {a:1, b:2};

const a = 1;
const b = 2;

【问题讨论】:

  • 最好的代码是别人看了也不会觉得羞耻
  • 这能回答你的问题吗? Do object references take up extra memory?
  • 查看上述链接问题的第二个答案^^
  • @2pha 不是真的,我不是在询问指向对象的指针。我在询问通过创建一个对象创建的内存,该对象具有 2 个以整数作为值的键与 2 个变量整数。我会假设该对象占用更多空间,正如我记得在我的一个 C 类中,一个结构在内存中占用 4 或 8 位或类似的东西。我想知道括号是否会在内存中创建一个固定空间,以及内部数据创建的任何内存。
  • 一个对象需要更多的管理,比如它的原型、“内部槽”和它的属性描述符。即使隐藏类正在使用中,它们至少会在对象头中占用一个额外的指针。更不用说额外的堆内存管理开销了。也许逃逸分析和优化可以使它们等效,但我无法想象一个额外的变量比对象方法占用 更多 空间。

标签: javascript space space-complexity


【解决方案1】:

所有全局变量,本身在全局对象(窗口)内创建。 与从对象访问键相比,访问函数变量要快。 您可以从以下链接阅读更多内容。

JavaScript Performance: Multiple variables or one object?

【讨论】: