We made a PoC using Gatling instead of JMeter in our environment.
Things look good and now our team is evaluating the options.
The question asked is: is Gatling default using multiple cores when running?
My assumption 'cause it Gatling is AKKA (parallel computing) based, is that this is true.
Also the fact that Scala was amongst others created to be the language that deals with multi-cores (scalable…) better than other languages.
Is the above true?
Any JVM multi-threaded program will use multiple cores, so does JMeter.
The main difference between Gatling and JMeter is how they use threads:
In JMeter: virtual users are implemented as threads, meaning 2000 users = 2000 threads. This uses more memory and harms performances because of context switching: http://en.wikipedia.org/wiki/Context_switch.
In Gatling, users are implemented as messages, with a fully asynchronous architecture. Gatling typically uses 2 threads/cores threads for Netty/NIO + 3 threads/core for Akka + a few misc threads (timers) = ~45 threads on a 8 core machine. This results in much better performance under heavy load.