gpt4 book ai didi

javascript - 哪个片段执行得更快/生成的代码行更少? (C++/JavaScript)

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:42 25 4
gpt4 key购买 nike

哪一个在速度(生成的代码行数)方面效率更高。

var x=obj.mem;
x.do1();
x.do2();

obj.mem.do1();
obj.mem.do2();

我只是以通用模式编写这些内容。具体来说,如果我必须访问成员(或成员的成员),是将公共(public)部分分配给变量然后使用该变量还是直接调用它更好,如第二种情况所示。

我主要关注 C++ 和 JavaScript(如果重要的话)。谢谢。

编辑->PS.我没有问共同答案。我知道 Javascript 是一种解释器语言,而 C++ 是基于编译器的。我对 JavaScript 的一点了解是自学的,我们在学校学习了 2 年的 C++(还有 Turbo C++),其余的又是自学的。所以,请原谅我的困惑。假设这些结构是有效的并考虑任何可能的变化,我期待一个一般的结果。无论如何,我的主要疑虑被清除了。谢谢。

结论:JS 使用局部变量更快(尽管可以忽略不计),而 C++ 可能会优化以获得几乎相同的结果。

感谢您的所有输入。

最佳答案

在 JavaScript 中,第一个更快。您可能会认为应该没有太大区别,但我在开发 Dreamweaver 扩展(它们使用 JavaScript)时遇到了这个问题,并且存在巨大差异。

我建议你避免使用长链。

基准测试:

var x = {y:{z:null}};
var start = (new Date).getTime();
for(var i=0;i<1000000;i++){
x.y.z = i;
}
alert((new Date).getTime()-start);

对比

var x = {y:{z:null}};
var start = (new Date).getTime();
var q = x.y;
for(var i=0;i<1000000;i++){
q.z = i;
}
alert((new Date).getTime()-start);

第二个在我的 Firefox 中大约快 10%。但请记住,这是一个极简主义场景。如果您使用更大的对象和更深的层次,差异可能会增加。

当然可以:

var x = {a:{b:{c:{d:{y:{z:null}}}}}};
var start = (new Date).getTime();
for(var i=0;i<1000000;i++){
x.a.b.c.d.y.z = i;
}
alert((new Date).getTime()-start);

对比

var x = {a:{b:{c:{d:{y:{z:null}}}}}};
var start = (new Date).getTime();
var q = x.a.b.c.d.y;
for(var i=0;i<1000000;i++){
q.z = i;
}
alert((new Date).getTime()-start);

30% 是否足以使其不可忽略?

问候,
阿林

关于javascript - 哪个片段执行得更快/生成的代码行更少? (C++/JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351965/

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