示例#1
0
  @Override
  public void checkPermGenSpace(boolean check) {
    // print.e(Runtime.getRuntime().freeMemory());
    // Runtime.getRuntime().freeMemory()<200000 ||
    // long pgs=SystemUtil.getFreePermGenSpaceSize();
    int promille = SystemUtil.getFreePermGenSpacePromille();

    // Pen Gen Space info not available
    if (promille == -1) { // if(pgs==-1) {
      if (countLoadedPages() > 500) shrink();
    } else if (!check || promille < 50) { // else if(!check || pgs<1024*1024){
      SystemOut.printDate(
          getErrWriter(),
          "+Free Perm Gen Space is less than 1mb (free:"
              + ((SystemUtil.getFreePermGenSpaceSize()) / 1024)
              + "kb), shrink all template classloaders");
      // first just call GC and check if it help
      System.gc();
      // if(SystemUtil.getFreePermGenSpaceSize()>1024*1024)
      if (SystemUtil.getFreePermGenSpacePromille() > 50) return;

      shrink();
    }
  }