The measurements were done on localhost? There is no tangible difference between multithreaded Java and single threaded Node, except in memory use? Could you try to make a similar experiment on some web host, e.g. in free host in google cloud with 32 cpus, to make sure that in practice there is no way Java can outperform Node.js?