WildCard999 :
Theres an interesting forum about disabling HT for gaming and cecilkorik from that forum made an excellent point about HT in gaming.
"What most games need is single-process, single-thread, single-core performance to be maxed out. Hyperthreading does the opposite. What hyperthreading does is attempt to balance 1 core between two different threads/processes...all it's really doing is giving half of the core's time to one process, and half to the other...You want 100% of the core's processing time devoted to that thread, without exception. No sharing, no hyperthreading. For the game, nothing else really matters...You don't care that a Windows Update check happened a fraction of a second faster because it was able to do a few extra operations on the same core your game is using."
I've heard this kind of argument before, but it makes no sense at all to me, though perhaps my understanding of how threads and processes work isn't as extensive as it might be.
Every program you have running is a thread. For thirty years now, Windows and the like has allowed 'multitasking' where multiple programs appear to run concurrently, by using the OS scheduler to assign processor time to threads. 'Do T1 for a bit, now stop. Now T2 for a bit, now stop. T1 a bit more, stop, T3 now...' and so on.
Back in the days of single core, single processor systems, this is how a computer could run Windows and a game at the same time. A game never did get '100% of the core's processing time without exception' which was why for best performance you'd always try and limit the number of processes running in the background - because they were processes that would keep interrupting the one that you wanted running the most. If Task Manager ever listed 100% for a process, it was more down to estimation than actuality.
When two cores available, does the OS scheduler really decide to devote one of them to a game, with no interruption whatsoever? If it's clever enough to do that, why would it not be clever enough to do the same even with HT enabled? Alternatively, if it didn't devote a core purely to a game, threads related to that game will get interrupted more than if HT were present.
Either way, it's unclear how turning off HT is supposed to give the game any more processor time, let alone 100% without exception.
'100% usage aside', does HT cause a performance drop? It seems like a historical memory more than anything current. Reading around, in the early days it definitely did for certain tasks on the Pentium 4 Northwood due to something called Replay.
Article here. Prescott seemed to alleviate it, but either way this is all on the NetBurst architechture - I can't find anything to say that Core uses Replay at all.
Some testing on an i7-3
here:
As you can see their are a few applications that perform marginally better, to the tune of one to two percent, with Hyper-Threading disabled. But at the same time there is far more to be gained in terms of performance from leaving Hyper-Threading enabled than there is to be gained from disabling it...At this point I think it’s fair to say that the days of fear mongering over performance hits due to Hyper-Threading are well past their “best if used by” dates. The implementation of this technology found in Ivy Bridge processors, and to a large extent in Sandy Bridge processors, is quite robust and well adapted to our current crop of OS schedulers.
The gaming benchmarks tend to show either equal or far greater peformance of an i3+HT over a Pentium-G. There may be certain setups where it leads to a small % decrease in certain games, but overall the idea that hyperthreading should be disabled because it leads to performance hits is somewhat out of date.