@Override
  public DifferentiateResult differentiate(Delta delta, DifferentiateParameters params) {
    long start = System.currentTimeMillis();
    try {
      return getDelegate().differentiate(delta, params);
    }
    finally {
      long duration = System.currentTimeMillis() - start;
      synchronized (this) {
        myTotalDifferentiateTime += duration;
      }
      debug("DependencyGraph differentiate ", params.getSessionName(), " done in ", Utils.formatDuration(duration));
    }
  }
@Override
  public DifferentiateResult differentiate(Delta delta, DifferentiateParameters params)