'JIT'에 해당되는 글 3건

  1. 2011.07.01 The Ludicrous JIT Compiler ( = Ruby + JIT )
  2. 2011.06.26 luajit 테스트 - (2)
  3. 2010.12.08 [luajit] LUA + JIT
정보기술2011. 7. 1. 15:58

http://rubystuff.org/ludicrous/

ruby 에 libjit 를 더한 구조의 ruby 용 JIT compiler 이다. 아직 성능 테스트는 못해봤지만, libjt 가 dotgnu 에서 사용되는 것이니 만큼 빠르고 안정된 기능을 제공할 가능성이 높다!!

 
반응형
Posted by Jay Two
정보기술2011. 6. 26. 14:07
 단순 비교.조건 분기 코드를 테스트해 보았다. 물론 리눅스/하드웨어 사양은 전과 동일했다. 테스트 반복 횟수는 5백만번이었다.

 local function cond1(a,b)
    if  ( a > b ) then
        return a
    else
        return b
    end
end

local function test_condition ()
    local max_repeat = 1000 * 1000 * 50
    local x = os.clock()
    local s = 0
    for i = 1 , max_repeat do
        s = cond1( 1, 2 )
    end
    print(string.format(
        "elapsed time: %.9f\tcount = %u\n",
            os.clock() - x ,
            max_repeat ) )
end

test_condition ()


 # lua t1.lua
elapsed time: 17.900000000    count = 50000000

# luajit -j on t1.lua
elapsed time: 0.080000000    count = 50000000


 인터프리터 방식과 jit 사용은 당연히 비교가 안되었으며, 약 200배 정도의 차이가 발생한 듯하다. 물론 c 나  pascal 등 으로 이를 개발하면 거의 0 초 수준이지만... 소스 코드에서 바로 작업한 수준이 이정도인건 훌륭하다!!

반응형
Posted by Jay Two
정보기술2010. 12. 8. 22:19
 
luajit 는 루아의 기능에 JIT 컴파일 기능을 추가하려는 계획으로 구성된 Mike Pall 이 구성한 프로젝트이다. 기본 구성은 루아 코드를 사용하지만, 동적으로 루아 코드를 파싱하는 방안이 아닌 x86또는 x64에 호환 가능한 코드로 구성된 코드로 변환하여 실행하는 방안으로 되어있다. 즉, 일반 루아와는 다르게 성능의 차이가 크다. 세부 코드를 보면 x86/x64 계열에서 사용하는 어셈블리 사용하게 되어 있고, 이는 DynASM 이라는 네이티브 코드 생성 엔진을 사용하게 되어 있다.  이는 ocamlc/mono 등에서 사용하는 방안이기도 한데, 모든 CPU와 OS에서 적용할 수는 없으며 특정한 환경에서만 사용 가능하다.
 개인이 구성한 프로젝트로는 매우 훌륭한 컨셉의 프로젝트이고, 장기적으로 오픈 소스 조직 또는 비영리 단체가  인수하여 프로젝트의 활성화가 되기를 기원한다...
   
반응형
Posted by Jay Two