46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
#!/bin/bash
|
|
# Analyze Gradle build performance and generate report
|
|
|
|
set -e
|
|
|
|
PROJECT_ROOT="${1:-.}"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
echo "🔍 Analyzing Gradle build performance..."
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# Clean build for accurate timing
|
|
echo "Running clean build with --profile..."
|
|
./gradlew clean build --profile --scan
|
|
|
|
# Find the latest profile report
|
|
PROFILE_REPORT=$(find build/reports/profile -name "*.html" -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" ")
|
|
|
|
if [ -n "$PROFILE_REPORT" ]; then
|
|
echo ""
|
|
echo "✅ Profile report generated: $PROFILE_REPORT"
|
|
echo ""
|
|
echo "📊 Build Performance Summary:"
|
|
echo "----------------------------"
|
|
|
|
# Extract key metrics if available
|
|
if command -v jq &> /dev/null && [ -f "build/reports/profile/profile.json" ]; then
|
|
jq -r '.buildTime, .taskExecutionTime' build/reports/profile/profile.json
|
|
else
|
|
echo "Open the HTML report for detailed analysis:"
|
|
echo "file://$PWD/$PROFILE_REPORT"
|
|
fi
|
|
else
|
|
echo "⚠️ Profile report not found"
|
|
fi
|
|
|
|
echo ""
|
|
echo "💡 Build optimization tips:"
|
|
echo "- Enable Gradle daemon: org.gradle.daemon=true"
|
|
echo "- Parallel execution: org.gradle.parallel=true"
|
|
echo "- Configuration cache: org.gradle.configuration-cache=true"
|
|
echo "- Build cache: org.gradle.caching=true"
|
|
echo ""
|
|
echo "Add these to gradle.properties for faster builds"
|