I'm getting much worse performance when I use list.parallelStream() than when I use list.stream().
Why do you think this is happening? This is Java 17 BTW, and my CPU is i5 of desktop class.
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.chrono.ChronoPeriod;
import java.time.chrono.HijrahChronology;
import java.time.chrono.HijrahDate;
import java.time.chrono.IsoChronology;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class App {
    public static void main(String[] args) throws Exception {
        int size = 1;
        List<Integer> list = null;
        long startTimeN;
        long endTimeN;
        long startTimeP;
        long endTimeP;
        long normalStreamCheckedSize;
        long normalStreamTime;
        long parallelStreamCheckedSize;
        long parallelStreamTime;
        for (int i = 1; i <= 1_000_000; i *= 10) {
            Random rand = new Random();
            size = i;
            list = Stream.generate(() -> {
                return rand.nextInt(10);
            }).limit(size).collect(Collectors.toList());
            startTimeN = System.currentTimeMillis();
            normalStreamCheckedSize = list.stream().count();
            endTimeN = System.currentTimeMillis();
            normalStreamTime = endTimeN - startTimeN;
            startTimeP = System.currentTimeMillis();
            parallelStreamCheckedSize = ist.parallelStream().count();
            endTimeP = System.currentTimeMillis();
            parallelStreamTime = endTimeP - startTimeP;
            System.out.println("Size: " + size);
            System.out.println("Normal time:" + normalStreamTime);
            System.out.println("Parallel time:" + parallelStreamTime 
            + "\n=====");
        }
   }
}
 
    