private void printCriticalPath(String title, CriticalPathEntry path) { lnPrintf("%s (%s):", title, TimeUtilities.prettyTime(path.cumulativeDuration)); boolean isComponent = path.isComponent(); if (isComponent) { lnPrintf("%6s %11s %8s %s", "Id", "Time", "Percentage", "Description"); } else { lnPrintf("%6s %11s %8s %8s %s", "Id", "Time", "Share", "Critical", "Description"); } long totalPathTime = path.cumulativeDuration; for (CriticalPathEntry pathEntry : criticalPathStats.getMiddlemanFilteredPath(path)) { String desc = pathEntry.task.getDescription().replace(':', ' '); if (isComponent) { lnPrintf( "%6d %11s %8s %s", pathEntry.task.id, TimeUtilities.prettyTime(pathEntry.duration), prettyPercentage((double) pathEntry.duration / totalPathTime), desc); } else { lnPrintf( "%6d %11s %8s %8s %s", pathEntry.task.id, TimeUtilities.prettyTime(pathEntry.duration), prettyPercentage((double) pathEntry.duration / totalPathTime), prettyPercentage((double) pathEntry.getCriticalTime() / totalPathTime), desc); } } MiddleManStatistics middleMan = MiddleManStatistics.create(path); if (middleMan.count > 0) { if (isComponent) { lnPrintf( " %11s %8s [%d middleman actions]", TimeUtilities.prettyTime(middleMan.duration), prettyPercentage((double) middleMan.duration / totalPathTime), middleMan.count); } else { lnPrintf( " %11s %8s %8s [%d middleman actions]", TimeUtilities.prettyTime(middleMan.duration), prettyPercentage((double) middleMan.duration / totalPathTime), prettyPercentage((double) middleMan.criticalTime / totalPathTime), middleMan.count); } } }
private void printCriticalPath(String title, CriticalPathEntry path) { lnPrintf("%s (%s):", title, TimeUtilities.prettyTime(path.cumulativeDuration)); boolean isComponent = path.isComponent(); if (isComponent) { lnPrintf("%6s %11s %8s %s", "Id", "Time", "Percentage", "Description"); } else { lnPrintf("%6s %11s %8s %8s %s", "Id", "Time", "Share", "Critical", "Description"); } long totalPathTime = path.cumulativeDuration; int middlemanCount = 0; long middlemanDuration = 0L; long middlemanCritTime = 0L; for (; path != null; path = path.next) { if (path.task.id < 0) { // Ignore fake actions. continue; } else if (path.task.getDescription().startsWith(MiddlemanAction.MIDDLEMAN_MNEMONIC + " ") || path.task.getDescription().startsWith("TargetCompletionMiddleman")) { // Aggregate middleman actions. middlemanCount++; middlemanDuration += path.duration; middlemanCritTime += path.getCriticalTime(); } else { String desc = path.task.getDescription().replace(':', ' '); if (isComponent) { lnPrintf( "%6d %11s %8s %s", path.task.id, TimeUtilities.prettyTime(path.duration), prettyPercentage((double) path.duration / totalPathTime), desc); } else { lnPrintf( "%6d %11s %8s %8s %s", path.task.id, TimeUtilities.prettyTime(path.duration), prettyPercentage((double) path.duration / totalPathTime), prettyPercentage((double) path.getCriticalTime() / totalPathTime), desc); } } } if (middlemanCount > 0) { if (isComponent) { lnPrintf( " %11s %8s [%d middleman actions]", TimeUtilities.prettyTime(middlemanDuration), prettyPercentage((double) middlemanDuration / totalPathTime), middlemanCount); } else { lnPrintf( " %11s %8s %8s [%d middleman actions]", TimeUtilities.prettyTime(middlemanDuration), prettyPercentage((double) middlemanDuration / totalPathTime), prettyPercentage((double) middlemanCritTime / totalPathTime), middlemanCount); } } }