canvas context2D 에서 getImageData 사용을 자제하자.

new
getImageData  는 느리다
이미지 크기가 크면 큰 만큼 느리다.

canvas clone 작업 시
ctx.putImageData(ctx0.getImageData(),0,0)
처럼 할 경우 
비번한 호출 시 웹 페이지의 프레임 드롭이 발생할 정도로 느려질 수 있다.

대시하여
ctx.save();
ctx.globalAlpha = 1,
ctx.globalCompositeOperation = "source-over",
ctx.drawImage(ctx0,0,0);
ctx.restore();
처럼 처리하였음.


느린 이유는
GPU -> CPU로 getImageData 는 너비x높이x4Bytes 의 데이터가 전송 된다. ( 1920 × 1080 × 4bytes ≈ 8MB )
하드웨어 가속이 적용 안된다고 한다.

drawImage 는 하드웨어 가속이 동작하고
GPU -> GPU 처리라서 (GPU 내부 동작) 빠르다고 한다.


CPU와 GPU는 동작을 각각하고 메모리 영역도 각각 관리하기 때문에 서로간의 데이터 전송시 무서운 듯


댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자