我声明一个Typescript类为“ Sample”,但同样的想法也适用于Javascript。
export enum SampleData
{
PositionX = 0,
PositionY,
TangentX,
TangentY,
Max
};
export class Sample
{
data: number[] = new Array( SampleData.Max );
x() { return this.data[SampleData.PositionX]; }
y() { return this.data[SampleData.PositionY]; }
}
通过将数字打包到Javascript(Typescript)结构的数组中,我可以获得任何好处吗?“获得”是指性能,记忆力,帮助gc等。
与
export class Sample
{
x : number;
y : number;
tanX : number;
tanY : number;
}
样本实例最终将以一系列样本结束。
不。
JavaScript引擎对实例属性查找进行了优化,以避免了映射查找,并且类似于C结构,C结构中的每个属性都位于结构内部的已知偏移处。
在混合中添加数组会尝试在语言级别执行相同的操作,但是它只会创建另一层间接寻址,从而使操作速度稍慢一些。
把事情简单化。在准备好进行基准测试并注意到代码中的问题区域之前,让JS引擎担心优化问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句