通过将数字打包到Javascript(Typescript)结构的数组中,我可以获得任何好处吗?

二进制的

我声明一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过将SVG元素的宽度和高度设置为100%,我们可以获得任何好处吗?

tar + rsync + untar。仅通过rsync可以获得任何速度上的好处吗?

我可以获得映射键吗?

通过 Java 的 Amazon Neptune SPARQL 查询:我可以获得原始 JSON 响应吗?

我可以获得 prestashop 主题的所有钩子名称(默认和创建的)的数组吗?

通过复制Ctrl + C可以获得视觉反馈吗?

我可以通过聚合获得干净的数据结构吗

我可以获得 Google Cloud Function 的根 URL 吗?

我可以获得类的所有方法吗?

我可以获得所有输出 keras 层吗

我可以获得用 cypress 创建的测试列表吗?

将Serilog.Sinks.Console接收器包装到Serilog.Sinks.Async接收器后,是否可以获得任何好处?

在python中通过DBSCAN对空间(纬度,经度)数据进行聚类后,我可以获得聚类质心吗

在Rx中,我不仅可以获得最后一个去抖动的对象,还可以获得完整的序列吗?

将扩展类型的对象分配给基类型的对象时,我可以获得正确的类型吗

我可以将嵌套json解组到平面结构中吗

我可以在C ++中安全地将float的结构转换为float数组吗?

我可以将多个位域结构替换为C中的数组吗?

Krakenjs Over Expressjs(如果我使用Kraken JS,我可以获得Express JS的所有好处)

如果我要立即使用 await 的结果,我会从异步中获得任何好处吗?

JavaScript 中是否有任何函数可以转换数组结构?

我可以在结构中存储泛型数组吗?

如何在GCC C中获得对齐的打包结构数组?

我可以通过不带问号的特殊类型将 TypeScript 函数中的参数标记为可选吗?

我可以获得为我的每个账户运行的 AWS EC2 实例的列表吗?

我在以下代码中获得异步的好处并等待吗

我可以将javascript原型添加到我的数组实例中吗?

您可以将Matlab数组和结构的复合数据存储和查询到数据库中吗?

您可以将多个本机模块打包到同一NPM包中吗?