docs: public void perf() throws Exception {
  
          int maxTests = 50000;
          String storedSiteRoot = m_cms.getRequestContext().getSiteRoot();
          try {
              m_cms.getRequestContext().setSiteRoot("/");
              Random random = new Random();
              // create a resource filter to get the resources with
              List<CmsResource> testResources = m_cms.readResources("/", CmsResourceFilter.ALL);
              int resourceCount = testResources.size();
              m_shell.getOut().println("#Resources:\t" + resourceCount);
              long start, time;
              long totalTime = 0;
              long minTime = Long.MAX_VALUE;
              long maxTime = Long.MIN_VALUE;
              m_shell.getOut().print("readFileHeader:\t");
              for (int i = maxTests; i > 0; --i) {
                  int index = random.nextInt(resourceCount);
                  CmsResource resource = testResources.get(index);
                  start = System.currentTimeMillis();
                  m_cms.readResource(m_cms.getSitePath(resource), CmsResourceFilter.ALL);
                  time = System.currentTimeMillis() - start;
                  totalTime += time;
                  if (time < minTime) {
                      minTime = time;
                  }
                  if (time > maxTime) {
                      maxTime = time;
                  }
                  if ((i % 100) == 0) {
                      m_shell.getOut().print('.');
                  }
              }
              m_shell.getOut().println(
                  "\nreadFileHeader:\t" + minTime + "\t" + maxTime + "\t" + (((float)totalTime) / maxTests) + " ms");
  
          } finally {
              m_cms.getRequestContext().setSiteRoot(storedSiteRoot);
          }
      }