I have a java system doing lot of i/o operations. I do understand that non CPU bound tasks can benefit from # of threads more than #CPUs.
As I/O operations time is non deterministic(I don't know how many threads I should initialize in pool). I want to measure the context switching happening due to number of threads I initialized in my java program.
Finally as result of that context switching overhead I want to tune the size of thread pool.
System.currentTimeMillis()to logs to measure how much time you need to complete tasks and simply experiment with thread pool size. Beggining conditions (inputs) should be the same.