Oracle опубликовала исследование, сравнивающее производительность между Lambdas и анонимными классами
См. JDK 8: Исследование производительности лямбда Сергея Куксенко, которое составляет 74 слайда.
Краткое описание: медленное прогревание, но когда JIT строит его в худшем случае так же быстро, как анонимный класс, но может быть быстрее.
У gradle есть несколько способов проверки зависимостей, но я не думаю, что какой-либо из них имеет фильтр, который ограничивает его только «проектными» зависимостями. См. https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies
Также обратите внимание, что проект имеет разные конфигурации зависимостей, где каждая конфигурация имеет свой собственный набор зависимостей.
Итак, вам нужно поговорить, например, о показе всех «компилируемых» зависимостей проекта.
Однако одно из больших преимуществ gradle заключается в том, что его легко написать с помощью groovy.
Этот быстрый черновик работает для меня, чтобы показать все зависимости в конфигурации "compile". Просто добавьте его в корневой проект и вызовите «gradlew projectDependencies». Это было протестировано ровно в одном примере проекта (другими словами «в основном не проверено») и не очень гибкое (конфигурация «компилировать» жестко задана). Однако я попытался сделать это понятным, используя явные типы и несколько строк, чтобы вы могли расширить его:
task projectDependencies {
doLast {
showProjectDependencies(rootProject, 0)
}
}
def showProjectDependencies(Project project, int nesting) {
ConfigurationContainer configurations = project.configurations
Configuration configuration = configurations.compile
println " " * (3 * nesting) + project.name
DomainObjectSet<ProjectDependency> projectDependencies = configuration.dependencies.withType ProjectDependency
projectDependencies.forEach {
showProjectDependencies(it.dependencyProject, nesting + 1)
}
}