'llvm'에 해당되는 글 1건

  1. 2021.03.19 Virtual machine을 적용하기 어려운점.

Virtual machine을 보안에 적용하기 위해서는 IR이 되던 무엇이 되던 별도의 opcode format이 필요할 것으로 예상되었다. 그래서 실제로 해보기전에 테스트를 한번 수행해 보았습니다.

 

실제 간단한 코드의 경우 10초가 걸리는 코드가 30분이 지나도 끝나지 않는 현상이 발생하였는데 이것이 문제가 있어서 이렇게 발생한 것인지는 모르겠습니다. 하지만 대략적으로 400배 이상의 지연이 발생되었습니다.

(동작하는 코드로 하였을경우, llvm의 lli를 바탕으로 테스트를 진행.)

 

하지만 JVM역시 괜찮은 속도로 동작해 주는 프로그램입니다. 그렇다면 front-end부터 작업을해서 CISC와 같은 구조 이것보다 더욱 CISC한 opcode로 만들어 주면 괜찮은 성능이 나오지 않을까 하는 생각은 있습니다.

 

하지만 언어자체가 C언어를 별도로 opcode로 만들어서 구동할려고 했던 내용이였기 때문에 이에대한 한계점이 생각보다 쉽게 찾아왔습니다.

 

1. 우선 LLVM을 활용하는 front-end를 건드리지 않는다는 부분을 설정하고 진행할경우 IR을 바탕으로 좋은 opcode그룹을 뽑아야 하는데 이것을 어떻게 처리할수 있을지?

 

2. 실제 run-time환경이 android phone환경이라 과연 성능이 원하는 수준으로 나올지.

 

3. 2와 관련되어 고성능을 요하는 library에 적용이 되더라도 가능할지?

 

이러한 문제점이 발생하기 시작하였습니다.

어떻게 보면 요즘 대다수의 vm들이나 다른것들이 aot를 사용하고 jit자체도 많이 줄어드는 추세인데 jit을 이용하면 성능은 일정부분이상 나올 수 있지만... 이쪽으로 방향성을 돌려야 하는지도 고민이 되는 부분입니다.

 

Posted by 콩딱파파
,