다른 대답을 자세히 설명하면 다음과 같습니다. 빌드의 끝 부분에 보고서 타이밍뿐만 아니라 동일한 작업을 수행하려고 했으므로 느린 단계가 분명합니다 (적절한 당사자는 작지만 건강한 비트를 느낍니다). 부끄러움을 때 그들은 빌드 천천히!). 아래 코드 등
BUILD SUCCESSFUL
Total time: 1 mins 37.973 secs
Task timings:
579ms :myproject-foo:clean
15184ms :myproject-bar:clean
2839ms :myproject-bar:compileJava
10157ms :myproject-bar:jar
456ms :myproject-foo:compileJava
391ms :myproject-foo:libs
101ms :myproject-foo:jar
316ms :myproject-bar:compileTestJava
364ms :myproject-foo:compileTestJava
53353ms :myproject-foo:test
2146ms :myproject-bar:test
8348ms :www/node:npmInstall
687ms :www/node:npmTest
뭔가, 또는 완료 후 실행시 타이밍을보고하기 위해 최고 수준의 build.gradle
으로 삭제 될 수 있습니다.
// Log timings per task.
class TimingsListener implements TaskExecutionListener, BuildListener {
private Clock clock
private timings = []
@Override
void beforeExecute(Task task) {
clock = new org.gradle.util.Clock()
}
@Override
void afterExecute(Task task, TaskState taskState) {
def ms = clock.timeInMs
timings.add([ms, task.path])
task.project.logger.warn "${task.path} took ${ms}ms"
}
@Override
void buildFinished(BuildResult result) {
println "Task timings:"
for (timing in timings) {
if (timing[0] >= 50) {
printf "%7sms %s\n", timing
}
}
}
@Override
void buildStarted(Gradle gradle) {}
@Override
void projectsEvaluated(Gradle gradle) {}
@Override
void projectsLoaded(Gradle gradle) {}
@Override
void settingsEvaluated(Settings settings) {}
}
gradle.addListener new TimingsListener()
'--profile' 매개 변수로 gradle을 실행하면'build/reports/profile'에 보고서가 생성되어 작업 실행 시간이됩니다 ... 충분합니까? –
좋은 보고서이지만 모든 빌드 관련 정보를 수집하는 데 추가 단계가 필요합니다. Jenkins gradle 작업을 분석하는 사람은 실행 시간을 직접 인라인으로 볼 수 있습니다. Thx 어쨌든! – ngeek