Estoy un poco confundido con Javascript Typed Arrays.Matrices mecanografiadas en Gecko 2: concatenación y expansión Float32Array
Lo que tengo son varios Float32Array s, que no tienen concat método. No sé cuántos son por adelantado, por cierto. me gustaría para concatenar todos ellos dentro de otro Float32Array, pero:
- como he dicho antes, no existe un método de concatenación
- si trato de escribir más allá de la longitud de la matriz, no se expande la matriz (aka esto no funcionará - Tenga en cuenta que event.frameBuffer y tampón son tanto Float32Array y que no sé cuál será la longitud final de mi memoria intermedia):
var length_now = buffer.length;
for (var i = 0; i < event.frameBuffer.length; i += 1) {
buffer [length_now + i] = event.frameBuffer[i];
}
T La única solución que encontré es copiar Float32Array en una matriz regular, eso definitivamente no es lo que quiero. ¿Cómo lo harías, Stackoverflowers?
Esto es realmente grande. Dos preguntas: ¿volver a crear de forma continua una nueva matriz tipada que no afectará las actuaciones? y ¿dónde encontraste documentación sobre el miembro de la función .set? No está en la página que vinculó. – janesconference
@janesconference, bueno, no necesariamente afectará el rendimiento ya que 'set()' probablemente se implemente de forma nativa y, como tal, deslumbrantemente rápido con blits de memoria, pero tendrá un impacto en la memoria ya que no se puede extender una matriz de tipo existente . Dependiendo del tamaño de la matriz, si la memoria escasea, puede producirse una paliza y el rendimiento se degradará enormemente como resultado. –
@ FrédéricHamidi: Hay otro problema que no es la implementación "nativa": supongamos que tiene n matrices con m elementos que desea concatenar. Su complejidad es entonces O (m^2), ya que copiará bloques de datos cada vez más grandes. La solución óptima se amortiza O (m). – user877329