gpt4 book ai didi

javascript - 哪一个在速度和内存使用方面更好,或者只是最佳实践

转载 作者:行者123 更新时间:2023-11-30 00:19:53 29 4
gpt4 key购买 nike

我有一个函数,里面有很多常量变量。将这些变量存储在 HashMap 中会更好吗(这将是一个复杂的)(它会在 HashMap 中包含 HashMap 。或者几个 if,else if 子句。就可读性而言,它们是关于相同。但我担心的是占用的内存和应用程序的速度。这是问题的极其简化版本:

function myFunction(data) {
var a = 0, b = 0, c = 0, d = 0;
if(data == value1) {
a += 3;
if(value1Fetched) {
b += 6;
c +=2;
d +=1;
}
} else if (data == value2) {
a += 1;
if(value2Fetched) {
b += 4;
c +=9;
}
}
return a+b+c+d;
}

显然有更多的标志和值(而且数据也是一个 HashMap )

版本 2:

function myFunction(data) {
var a = 0, b = 0, c = 0, d = 0;
var myHash = {
value1: {
a: 3,
b: 6,
c: 2,
d: 1
},
value2: {
a: 1,
b: 4,
c: 9,
d: 0
}
};
a += myHash[data][a];
if(isFetched(data)){
b += myHash[data][b];
c += myHash[data][c];
d += myHash[data][d];
}
return a+b+c+d;
}

对于困惑的(伪)代码,我很抱歉,我试图让它尽可能地可读。这几天一直困扰着我,工作中的每个人都有不同的看法。

最佳答案

我会说第二个问题的可扩展性远远超过任何可能(和不太可能)的性能问题。如果需要,您甚至可以即时更改该结构,或者为映射结果不同的两个环境设置多个实例。

对于与您发布的一样小的示例,它可能会更慢,但听起来实际可能有很多条目,在这种情况下,使用 map 查找的复杂度为 O(log(n)) 而不是 O( n)(希望这些术语是正确的!大学毕业后已经有一段时间了)。大型 JSON 对象(字符串映射)在 JavaScript 中并不少见,事实上,您经常在公共(public)代码中将它们用于库和浏览器功能。

关于javascript - 哪一个在速度和内存使用方面更好,或者只是最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33552199/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com