Transaction verification is single threaded
Hasn't been since
2012.
I totally forget such feature, i always thought it's useless feature. But how well this feature (Execution Cap) works? I couldn't find any solid article/review about this feature.
Alright, this is going to open another can of worms because I'm not sure how execution cap handles multiple cores. But on the plus side it looks like all your benchmark has to do is run bitcoin core with -reindex and then measure the time it takes to finish from debug.log and also using stuff like
top to keep track of resource usage. But automatic profiling with
systat where the metrics are stored in other log files is better IMO.
According to
https://www.virtualbox.org/manual/ch03.html#settings-processor, the policy limits the cap for each virtual core, so you could have for example 2 cores both running at 50%. I think that to accurately measure Bitcoin Core performance, we must also measure how much the multithreaded verification speeds things up so it would make sense to be able to do things like emulating a Core2 or i3 with enough vCPUs as threads it supports, and then use the execution cap to try to emulate their baseline processor speed. This, in my opinion, will make more useful results than just testing at 10%, 20%, 30% etc. caps.