Como hacer emscripten para generar un mejor código

votos
0

He leído mucho acerca de cómo puede ser rápido código emscripten, por lo tanto decidí convertir mi aplicación js a C ++ y luego compilar a emscripten. Tengo alrededor de + 30% de aumento de velocidad y no es lo que esperaba! (Pensé que será de al menos 5 veces la velocidad de aumento) Así que decidí comprobar el código compilado y vi esta cosa extraña!

Este es un código de método original (C ++, pero se ve casi lo mismo en la solicitud original lento JS).

void Op2B()
{
    sm = (sm - 1) & 65535;
    t->time += 2;
}

Esta es una versión asm.js emscripten-compilada del mismo código

function __ZN16EpsilonGames_VGS3Z804Op2BEv($0) {
    $0 = $0|0;
    var $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, label = 0, sp = 0;
    sp = STACKTOP;
    STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abortStackOverflow(16|0);
    $1 = $0;
    $2 = $1;
    $3 = ((($2)) + 24|0);
    $4 = load4($3);
    $5 = (($4) - 1)|0;
    $6 = $5 & 65535;
    $7 = ((($2)) + 24|0);
    store4($7,$6);
    $8 = load4($2);
    $9 = load4($8);
    $10 = (($9) + 2)|0;
    store4($8,$10);
    STACKTOP = sp;return;
}

Como se puede ver, es muy lejos de ser óptima.

¿Hay alguna posibilidad de hacer este código un poco más óptima? Tengo la esperanza de obtener al menos x5 aumento en la velocidad.

¡Gracias!

Publicado el 20/10/2018 a las 10:34
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more