TWIL JS Array 알아보기

Agenda

  • Javascript에서 Array가 어떻게 작동하는지 알아봅니다.
  • 위 문제를 해결하는 방법을 알아봅시다.

만화로 소개하는 ArrayBuffer 와 SharedArrayBuffer ★ Mozilla 웹 기술 블로그

Diving deep into JavaScript array - evolution & performance

Array in Static Type Langauge

Are JavaScript arrays actually linked lists?

Are node.js arrays actually hashmaps?

그러면 어떻게 해야할까?

ArrayBuffer

How To Use

var buffer = new ArrayBuffer(12);
var dataView = new DataView(buffer);
var int8View = new Int8Array(buffer);
dataView.setInt32(0, 0x1234abcd);
console.log(dataView.getInt32(0).toString(16));
console.log(dataView.getInt8(0).toString(16));
console.log(int8View[0].toString(16));

Performance check

var LIMIT = 10000000;
var arr = new Array(LIMIT);
arr.push({ a: 22 });
for (var i = 0; i < LIMIT; i++) {
  arr[i] = i;
}
var p;
console.time("Array read time");
for (var i = 0; i < LIMIT; i++) {
  //arr[i] = i;
  p = arr[i];
}
console.timeEnd("Array read time");

var LIMIT = 10000000;
var buffer = new ArrayBuffer(LIMIT * 4);
var arr = new Int32Array(buffer);
console.time("ArrayBuffer insertion time");
for (var i = 0; i < LIMIT; i++) {
  arr[i] = i;
}
console.time("ArrayBuffer read time");
for (var i = 0; i < LIMIT; i++) {
  var p = arr[i];
}
console.timeEnd("ArrayBuffer read time");
Published 25 Jun 2019

AWS, Node.js, Typesript 를 주로 사용하며 Nest.js, Golang 에 대해서 관심을 가지고 있는 개발자입니다. 개발 관련 잡담을 좋아합니다. 관심이 필요합니다 :)
Jinho Hong on Github