@Override
    public Traverser.Admin<S> next() {
        Traverser.Admin<S> start = null;
        try {
            start = super.next();
            return start;
        } finally {
            if (!this.onGraphComputer && start == null) {
                final DefaultTraversalMetrics m = getTraversalMetricsFromSideEffects();
                if (!m.isFinalized()) m.setMetrics(this.getTraversal(), false);
            }
        }
    }
@author Bob Briody (http://bobbriody.com)
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/ProfileSideEffectStep.java