CVM_MTASK에 대해서

이정우 2008.10.09 01:27 조회 수 : 10709 추천:22

jvm 에는 -server 와 -client 라는 옵션이 있다.

두 옵션은 서로 용도가 다르다. (참고 : http://www.clap4ya.com/zbxe/?document_srl=6673)
-server  는 초기 로딩 속도( bootup ) 가 늦다. 그리고 메모리에서 유저 데이터가 오랫동안 보관될 필요가 없는 프로그램을 위한 옵션이다. -client 옵션은 초기 로딩 속도가 빨라야 하고, 유저 데이터가 프로그램의 종료 시점까지 메모리 해제 없이 대부분 유지되는 프로그램을 위한 옵션이다. 즉, 웹서버와 같이 응답속도가 중요한 프로그램에서는 -server옵션을 사용하고, -client옵션은 초기 로딩 속도가 중요하고 old 자료가 많은 일반적인 응용프로그램에서 사용한다.

phoneME cvm 에서도 이를 지원하는데 -Xserver 라는 옵션이 -server  옵션을 대신한다. 그러나 이는 cvm 의 컴파일 시에 아예 -Xserver옵션을 제공하지 않도록 할 수도 있다.

아래의 코드를 보면 알 수 있다.

cdc/src/share/javavm/runtime/jni_impl.c

#ifdef CVM_MTASK
    } else if (!strncmp(str, "-Xserver", 8)) {
        options.isServer = CVM_TRUE;
#endif

cvm초기 구동 시, 옵션을 파싱하는 부분인데, -Xserver 라는 옵션이 지정되더라도 CVM_MTASK 가 정의되지 않을 시에는 옵션을 주어도 아무런 효과가 없다. 그냥 client 모드로 사용되는 것이다. 아마도 cvm이 엔터프라이즈 환경에서 사용되지 않고, 임베디드 기기를 위한 vm이기 때문에 server모드를 옵션으로 지정해 놓은 것 같다.


출처: http://lunar-katie.tistory.com/entry/cvmphoneme-CVMMTASK-server-%EC%98%B5%EC%85%98#recentTrackback
XE Login