在JavaScript performancewise中模拟结构处理的C数组

在JavaScript performancewise中模拟结构处理的C数组,javascript,arrays,struct,Javascript,Arrays,Struct,在C语言中,可以得到大量混合类型的数据记录,并进行有效的处理。例如,计算一条记录作为另一条记录的函数,如: struct TypeA{ int i; boolean b; } struct TypeA{ long int l; float f; } struct TypeA as[1000]; struct TypeB bs[1000]; for(int i=0; i<1000; i++) bs[i]=someFunction(as[i]);

在C语言中,可以得到大量混合类型的数据记录,并进行有效的处理。例如,计算一条记录作为另一条记录的函数,如:

struct TypeA{
    int i;
    boolean b;
}

struct TypeA{
    long int l;
    float f;
}

struct TypeA as[1000];
struct TypeB bs[1000];

for(int i=0; i<1000; i++)
    bs[i]=someFunction(as[i]);
结构类型A{ int i; 布尔b; } 结构类型A{ 长整数; 浮动f; } 结构类型A为[1000]; 结构类型B bs[1000];
对于Javascript中的(inti=0;i,我编写了如下C代码:

var as =new Array(1000),
    bs =new Array(1000);

/* struct TypeA */
var TypeA = function(x,y) {
    this.i = x;
    this.b = y;
   return this;
}

var TypeB = function(x,y) {
    this.l = x;
    this.f = y;
}

var someFunction = function(a,b) {
   // doing something ....
   b.l = a.i*2;
   b.f = a.b?0.0:100.0;
}

/** init array first**/
for(var i=0; i<1000; i++) {
    as[i] = new TypeA(i+1, i & 1);
    bs[i] = new TypeB(0,0.0);
}


for(var i=0; i<1000; i++)
    someFunction(as[i],bs[i]);
var as=新阵列(1000),
bs=新阵列(1000);
/*结构类型A*/
var TypeA=函数(x,y){
i=x;
这个。b=y;
归还这个;
}
变量类型B=函数(x,y){
这个。l=x;
这个。f=y;
}
var someFunction=函数(a,b){
//做点什么。。。。
b、 l=a.i*2;
b、 f=a.b?0.0:100.0;
}
/**先初始化数组**/

对于(var i=0;这是一种非常直接的方法,JavaScript运行时可能会对其进行很好的优化。但是,我想它相对于C等价物来说仍然非常低效。如果我有一些空闲时间,我将尝试这方面的基准测试。也许查看从C或其他语言编译到asm.js的代码会提供更精确的线索……但是,正如m、 js允许使用真正的整数类型,而js不允许,因此结果可能不适用。