小编Ice*_*bob的帖子

如果数量大于8的道具,为什么NodeJS对象创建的性能如此糟糕?

我想知道NodeJS在创建一个具有8个以上属性的对象时有任何限制吗?我做了一个基准测试,似乎对象有超过8个属性,性能会很糟糕.

测试套件:https://github.com/icebob/js-perf-benchmark/blob/master/suites/properties.js(问题末尾的完整副本)

结果:

  • 用1 prop 0%(62,695,620 rps)创建对象(平均值:15ns)
  • 使用8 prop -31.95%(42,662,752 rps)创建对象(平均值:23ns)
  • 使用9 prop -95.79%(2,640,046 rps)创建对象 (平均值:378ns)

码:

bench.add("Create object with 8 prop", () => {
    let opts = {
        prop1: 5,
        prop2: "",
        prop3: false,
        prop4: 1,
        prop5: 0,
        prop6: null,
        prop7: "Hello",
        prop8: 12345
    };
    return opts;
});

bench.add("Create object with 9 prop", () => {
    let opts = {
        prop1: 5,
        prop2: "",
        prop3: false,
        prop4: 1,
        prop5: 0,
        prop6: null,
        prop7: "Hello",
        prop8: …
Run Code Online (Sandbox Code Playgroud)

javascript performance performance-testing node.js

4
推荐指数
1
解决办法
207
查看次数