I have tried only with 6 elements as I didn't have much data. I ran each method thrice
When I ran basic for loop, it took very less time compare to parallel stream. Is it due to less number or record. If yes, can I get any graph where I can see after how may records parallel stream can overtake basic for loop for basic opearion.
long startTime = System.nanoTime(); // 222436 331094 316872ns for (int i = 0; i < employeeOtps.size(); i++) { Employee emp = employees.get(i); EmployeeOtp employeeOtp = employeeOtps.get(i); emp.setMobileNo(employeeOtp.getReqValue()); employees.set(i, emp); } // OR this one // 3071437 3879830 3177251ns IntStream.range(0, employeeOtps.size()).parallel.forEach(i -> { EmployeeMaster emp = employees.get(i); EmployeeOtp employeeOtp = employeeOtps.get(i); emp.setMobileNo(employeeOtp.getReqValue()); employees.set(i, emp); }); // OR this one //8727341 14350819 6088261ns IntStream.range(0, employeeOtps.size()).forEach(i -> { EmployeeMaster emp = employees.get(i); EmployeeOtp employeeOtp = employeeOtps.get(i); emp.setMobileNo(employeeOtp.getReqValue()); employees.set(i, emp); }); long totalTime = (System.nanoTime() - startTime); I ran one by one and recorded time.
for loop:- 222436, 331094, 316872 ns
stream w/o parallel:- 3071437, 3879830, 3177251 ns
stream with parallel:- 3071437, 3879830, 3177251 ns
less time order wise for size = 6
basic for loop (290ms) < intstream parallel(3376ms) < intsream(9722ms)
setmethod is doing.