ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • System.gc가 gc를 enforce하는가?
    Computer/J2ME for GSM 2004. 12. 14. 08:00

    J2ME의 System 에서 (J2SE도 같은 정의가 있다.)

     

    public static void gc()

    Runs the garbage collector.

    Calling the gc method suggests that the Java Virtual Machine expend effort toward recycling unused objects in order to make the memory they currently occupy available for quick reuse. When control returns from the method call, the Java Virtual Machine has made a best effort to reclaim space from all discarded objects.

    System.gc()의 경우 단지 JVM이 garbage collection을 하도록 "제안"만 한다는 것이다.

    보통 garbage collection을 바로 하는 편이고

    J2SE에는 대개 gc를 바로 하지만,

     

    J2ME의 JVM implementation에서는 안하는 경우도 있다고 한다. 

    물론 emulator들은 거의 다 했던 것 갔다. 

     

    어쨌든 결론은 System.gc()를 한다고 해서 gc가 강제적인 것은 아니고,

    적절한 때에 하는 것이다. 

    Sun의 J2SE JVM implementation에서는 garbage collection thread가 기본적으로

    떠 있다가 즉각 해 주는 것 같기는 한데,

    J2ME JVM implementation에서는 garbage collection thread가

    기본적으로 떠 있는 것 같지는 않다.

    실제 phone에서 가장 간단한 Midlet을 만들고

    Thread.activeCount()를 찍어보면 1개가 나온다.

    J2SE에서는 4개가 나왔던 것 같다.

     

     

Designed by Tistory.