Hey, I want to buy i3 2120 but I have a question. It has 2 cores but 4 threads, and there is my question:
when I run a single thread game, will it use full core (50% cpu usage, the whole core) or will it only use one thread (25% cpu usage, half a core)?
And the second question is whether is it different on windows and linux? Because I'm building PC mostly for single thread games on linux. (WINE has the drawback that in most games it uses only one thread unfortunately).
Within the Windows task manager you will see 4 threads and a Window showing total CPU usage. With the Intel® Core™ i3-2120 you will see four windows for the threads and if you are running a single threaded application you would see that thread box running high but you would only see the total cpu usage topping off at under 25% (since the other core and the two threads from hyper-threading is not being used).
Thanks for answer. So if I understand correctly, it will show 25% usage but the whole physical core will be used by that single thread app, yes?
In case someone is interested, I did a research and it's exactly that way. Every of the 2 logical threads on one physical core has the full acces to core - so it means, when you run real time single thread app (game), it will use full physical core, but task manager will only show 25% usage (because it divides 100% by numer of threads and hyper threading is more of hardware thing so the task manager can't display it properly).
This gets into understanding how hyper-threading works. Basically the best way to think about hyper-threading is to think about leftovers. When an application is using a core rarely does it use all of the resources of that core. What hyper-threading does is it allows a second pathway for information enter the core and take advantage of these leftover resources. In most cases where an application takes advantage of hyper-threading you are going to be able to see about 10% or so performance boost from hyper-threading. Lets say you are running an application that is using a both cores and the first thread from hyper-threading.