JoseyMG :
Im deciding on what to get 4770k or 8350. I know they are very different on what they offer for the different price range, but i want the "best" of the best from each category. Im slightly confused on the hyperthreading. 4 cores, but with HT, it acts like an 8 core, am i right? If so will it be "future" proof since it has 8 cores? Ill be doing a lot of video editing and multi tasking so which one will be better for me? Ill be using programs like Adobe After Effects, Sony Vegas, Photoshop and 3Ds max. And ill be gaming a lot. Thanks!
Hyperthreading is a neat little technology that allows a single physical processor core to work on two logically isolated workloads at the same time (a single physical processor core is exposed as two logical processors). The core resources are balanced dynamically between the two workloads.
If one of the workloads is an idle thread, then the majority of the core's execution resources will be dedicated to the primary workload, effectively turning it into a powerful single core processor. This is why most people claim that "modern games don't take advantage of Hyperthreading", there aren't enough concurrent workloads in them to spill over.
If the two workloads are balanced, then the core's resources are spread between them almost evenly. At this point, the processor does behave as if it had twice as many physical cores, with each one somewhat less performant than it would be were Hyperthreading disabled.
example,
Workload A utilizes 50% of a cores resources and executes in 1 second. Workload B utilizes 25% of a core's resources and executes in 0.5 seconds. Workloads A and B are disjoint, sharing no common execution resources (impossible in reality, but good for this example).
If Hyperthreading is disabled, the microprocessor must execute workloads A and B sequentially, consuming a total of 1.5 seconds of time between them.
If Hyperthreading is enabled, the microprocessor can execute workloads A and B concurrently, provided that it has the resources to do so. In this example, there's plenty of compute power left over so A and B can run at the same time. B will finish first after 0.5 seconds, followed by A 0.5 seconds later (total of 1 second run time).
If the workload of B is increased to 75% for 1.5 seconds, then the combined workloads exceed 100% of the core's resources.
If Hyperthreading is disabled, the two workloads still take 2.5 seconds.
If Hyperthreading is enabled, then the processor has to balance between A and B. Lets assume a perfect 50/50 split,
Workload A gets 50% of the core's resources and completes within 1.0 seconds as before. Workload B gets 50% of the core's resources but requires 75% to execute within 1.5 seconds. For the first second, it is only able to use two thirds of the resources that it needed to complete the workload within the non-Hyperthreaded completion time. Lets do some math,
0.75 * 1.5 = 1.125
1.125 - 0.5 * 1.0 = 0.625
0.625 / 0.75 = 0.833 seconds remaining
So rather than taking 1.5 seconds to execute, it takes 1.833 seconds to execute. This is longer than it would take had it full access to the core's execution resources, but it executes concurrently with workload A which still reduces the combined execution time from 2.5 seconds to 1.833 seconds. Not a bad increase!
/Hyperthreading tutorial