Стоит ли хранить значения this.key
в переменных?this.key vs variable performace
Может ли это повлиять на скорость при допущении, что я должен выполнять эту операцию в каждом кадре?
Простой пример:
class Vector3 {
constructor(X = 0, Y = 0, Z = 0) {
this.X = X
this.Y = Y
this.Z = Z
}
toVector2() {
return new Vector2(
(this.Y - this.X) * COS27,
-((this.Y + this.X) * SIN27 + this.Z)
)
}
}
против
class Vector3 {
constructor(X = 0, Y = 0, Z = 0) {
this.X = X
this.Y = Y
this.Z = Z
}
toVector2() {
const {X, Y, Z} = this
return new Vector2(
(Y - X) * COS27,
-((Y + X) * SIN27 + Z)
)
}
}
Какой из них является более эффективным? Может ли сбор мусора повлиять на производительность здесь?
Напишите тестовый пример в jsperf и просмотрите его самостоятельно. – sabithpocker
Разница в производительности настолько незначительна, что ее можно игнорировать. и это может привести к удобочитаемости кода и обслуживанию. В больших проектах я бы добился наименьшей оптимизации, если они не сильно влияют на читаемость кода. но, теоретически, это влияет на производительность незаметно. –
Назначение деструктуризации ES6 все еще медленнее (до 100x) в большинстве браузеров/транспилеров, чем прямой доступ к свойствам, см. [Six-speed] (https://kpdecker.github.io/six-speed/). – wOxxOm