// Basic smoke tests for large ArrayBuffers.
let gb = 1 * 1024 * 1024 * 1024 ;
function test1() {
let ab = new ArrayBuffer(7 * gb);
assertEq(ab.byteLength, 7 * gb);
let taInt16 = new Int16Array(ab);
assertEq(taInt16.byteOffset, 0 );
assertEq(taInt16.byteLength, 7 * gb);
assertEq(taInt16.length, 3 .5 * gb);
let taInt16LastGb = new Int16Array(ab, 6 * gb);
assertEq(taInt16LastGb.byteOffset, 6 * gb);
assertEq(taInt16LastGb.byteLength, 1 * gb);
assertEq(taInt16LastGb.length, 0 .5 * gb);
taInt16LastGb[0 ] = -99 ;
assertEq(taInt16[3 * gb], -99 );
let taUint8 = new Uint8Array(ab);
assertEq(taUint8.length, 7 * gb);
assertEq(taUint8[7 * gb - 1 ], 0 );
taUint8[7 * gb - 1 ] = 42 ;
taUint8[7 * gb - 1 ]++;
++taUint8[7 * gb - 1 ];
assertEq(taUint8[7 * gb - 1 ], 44 );
let dv = new DataView(ab);
assertEq(dv.getInt16(6 * gb, true ), -99 );
assertEq(dv.getUint8(7 * gb - 1 , true ), 44 );
dv.setInt16(6 * gb + 2 , 123 , true );
assertEq(taInt16LastGb[1 ], 123 );
}
test1();
function test2() {
let taInt8 = new Int8Array(4 * gb);
assertEq(taInt8.length, 4 * gb);
taInt8[4 * gb - 4 ] = 42 ;
assertEq(taInt8[4 * gb - 4 ], 42 );
let dv = new DataView(taInt8.buffer);
assertEq(dv.getInt32(4 * gb - 4 , true ), 42 );
assertEq(dv.getBigInt64(4 * gb - 8 , true ), 180388626432 n);
}
test2();
Messung V0.5 in Prozent C=96 H=89 G=92
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-06)
¤
*© Formatika GbR, Deutschland