you can see performance:
public static void main(String[] args) {
System.out.println("Predicate using Lamda");
System.out.println(System.currentTimeMillis());
doThis();
System.out.println(System.currentTimeMillis());
System.out.println("Predicate using Without Lamda");
System.out.println(System.currentTimeMillis());
doThisWithoutLamda();
System.out.println(System.currentTimeMillis());
System.out.println("Predicate using Lamda 100000");
System.out.println(System.currentTimeMillis());
for (int i = 0; i < 100000; i++) {
doThis();
}
System.out.println(System.currentTimeMillis());
System.out.println("Predicate using Without Lamda 100000");
System.out.println(System.currentTimeMillis());
for (int i = 0; i < 100000; i++) {
doThisWithoutLamda();
}
System.out.println(System.currentTimeMillis());
}
public static void doThis() {
Predicate<String> p = (arg) -> true;
}
public static void doThisWithoutLamda() {
Predicate<String> p = new Predicate<String>() {
@Override
public boolean evaluate(String object) {
return true;
}
};
}
Output :
Predicate using Lamda
1551087600419
1551087600491
Predicate using Without Lamda
1551087600491
1551087600492
Predicate using Lamda 100000
1551087600492
1551087600496
Predicate using Without Lamda 100000
1551087600496
1551087600500
Java lambdas 20 times slower than anonymous classes