बस दूसरे उत्तर पर विस्तृत करने के लिए: हम एक ही चीज़ करना चाहते थे, साथ ही साथ निर्माण के अंत में एक रिपोर्ट समय करना चाहते थे, इसलिए धीमे कदम स्पष्ट हैं (और उपयुक्त पार्टियां एक छोटी लेकिन स्वस्थ बिट महसूस करती हैं जब वे निर्माण धीमा करते हैं तो शर्म की बात है!)।
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' पैरामीटर के साथ ग्रेडल चलाते हैं, तो यह कार्य निष्पादन समय के साथ 'बिल्ड/रिपोर्ट/प्रोफाइल' में एक रिपोर्ट उत्पन्न करता है ... क्या यह काफी अच्छा है? –
यह एक अच्छी रिपोर्ट है, लेकिन सभी बिल्ड संबंधित जानकारी एकत्र करने में एक अतिरिक्त कदम की आवश्यकता है, बेहतर रूप से हमारे जेनकिंस ग्रेडल नौकरियों का विश्लेषण करने वाले व्यक्ति निष्पादन समय को सीधे इनलाइन देख सकते हैं। वैसे भी Thx! – ngeek