code: private void gc() {
  
          I_CmsLruCacheObject currentObject = m_listTail;
          while (currentObject != null) {
              if (m_objectCosts < m_avgCacheCosts) {
                  break;
              }
              currentObject = currentObject.getNextLruObject();
              removeTail();
          }
      }
docs: Removes the last recently used objects from the list of all cached objects as long
  as the costs of all cached objects are higher than the allowed avg. costs of the cache.<p>