Front-end_dev
Javascript V8 Engine은 C++기반으로 만들어져있다.javasript에서 object의 property를 런타임시에 동적으로 마음대로 바꿀수잇다. 그럼 C++도 가능하다는뜻인데..함수포인터로간단하게 구현할수있다.아마 V8 Engine은 javascript object들을 map형태 혹은 다른 자료구조(테이블형식)로 관리하지않나 싶다. Javascript const str1 = 'this';const str2 = 'isfunction'; class C { m1() { console.log('foo'); } [str1]() { console.log('bar'); } [str1 + str2]() { console.log('baz'); }} C++ #include #include #include ..
Streaming multiprocessor당 32개의 core와 Control unit은 1개가 존재한다. 이말은 32개 core를 전부 실행하냐 전부실행하지않느냐로 볼 수 있다.Control unit이 1개밖에 존재하지않기떄문에 특정 core의 ALU에만 신호를 보낼 수 가 없기떄문. 즉, if-else로 분기가 되어있다하더라도 모든쓰레드가 다 if-else 두개의 분기를 전부 실행하게된다.하지만 실제 코드를 작성하고 실행해보면 결과가 우리가생각하고 코딩했던것과 일치하게되는데, 조건에맞지않은 쓰레드가 그 scope영역내의 코드를 실행했을떄 ALU까지는 수행되지만 write-back이 되지않기때문에(저장을 하지않기떄문에) 문제가 되지않던것이였다. 결국 clock cycle이 낭비되고있다는말. 그래서 c..
GenTwoDimArr() 함수는 초기에 입력받은 파라미터로 2차원 배열을 생성하고 각 row가 초기에 입력받은 col값을 넘어섰을때 에러를 강제시킴. const GenTwoDimArr = (row,col) => { let arr = []; for(let i=0; i col) // if length of array is overflowed, it will be force to generate error return false; else { target[property] = value; return true; } } }); } for(let i=0; i