中间变量——性能成本是多少?
Intermediary variables - what's the performance cost?
const scrollPercent = getScrollPercent();
const mainDivHeight = (mainDivRef.current as any).offsetHeight;
const imgHeight = (imgRef.current as any).offsetHeight;
const offset = ((imgHeight - mainDivHeight) * scrollPercent) / 100;
setBgrImgStyle(x =>
Object.assign({}, x, { transform: `translateY(-${offset}px)` })
);
如上所示,我们有很多 const
声明只使用一次,这意味着它们可以简单地内联。
我经常这样做以提高可读性,有时可能太多了。
性能成本是多少?上面的代码是 JS,不过我很乐意收到与语言无关的答案。
在将操作置于循环中被调用数十万次的过程中之前,不要担心性能提升很小。在那之前,请专注于代码的清晰度。如果某件事没有发生数千次,那不是问题。也许你可以使用 https://jsperf.com,但如果你真的关心的话。
在真实的现代世界?
可能none。
大多数应用程序无论如何都会打包 JS,并对其进行丑化。如果你不这样做,你应该这样做,因为它减少了你的负载,并且有一个额外的好处,让你的例子变得无关紧要。
一个简短的例子:
var get = function(information){
var name = information.Name;
if (name == 'john'){var get=function(n){if("john"==n.Name)return!1};
return false;
}
}
缩减为:
var get=function(n){if("john"==n.Name){return!1}};
如果你所做的只是制作更具可读性的代码,Webpack/uglification 或其他任何东西都可能会看到这一点并为你做出必要的调整。
所以担心代码的可读性和功能性。当您发现实际性能问题时,请担心性能。
const scrollPercent = getScrollPercent();
const mainDivHeight = (mainDivRef.current as any).offsetHeight;
const imgHeight = (imgRef.current as any).offsetHeight;
const offset = ((imgHeight - mainDivHeight) * scrollPercent) / 100;
setBgrImgStyle(x =>
Object.assign({}, x, { transform: `translateY(-${offset}px)` })
);
如上所示,我们有很多 const
声明只使用一次,这意味着它们可以简单地内联。
我经常这样做以提高可读性,有时可能太多了。
性能成本是多少?上面的代码是 JS,不过我很乐意收到与语言无关的答案。
在将操作置于循环中被调用数十万次的过程中之前,不要担心性能提升很小。在那之前,请专注于代码的清晰度。如果某件事没有发生数千次,那不是问题。也许你可以使用 https://jsperf.com,但如果你真的关心的话。
在真实的现代世界?
可能none。
大多数应用程序无论如何都会打包 JS,并对其进行丑化。如果你不这样做,你应该这样做,因为它减少了你的负载,并且有一个额外的好处,让你的例子变得无关紧要。
一个简短的例子:
var get = function(information){
var name = information.Name;
if (name == 'john'){var get=function(n){if("john"==n.Name)return!1};
return false;
}
}
缩减为:
var get=function(n){if("john"==n.Name){return!1}};
如果你所做的只是制作更具可读性的代码,Webpack/uglification 或其他任何东西都可能会看到这一点并为你做出必要的调整。
所以担心代码的可读性和功能性。当您发现实际性能问题时,请担心性能。