Do programowania bierz zawsze to, co najmocniejsze. VS kompiluje wielowątkowo i zwykle potrafi w ten sposób obciążyć każdy z rdzeni, więc na i7 kompilacja zajmie zwykle mniej, niż połowę czasu z i5.
Zarówno i7 jak i niektóre i5 mają 4 rdzenie.
i7 ma hyper-threading, ale hyper-threading polega tylko na tym, że dekoder instrukcji dostaje do zdekodowania instrukcje dwóch wątków równocześnie i wrzuca je do wykonania przez wspólny rdzeń, który sam w sobie jest taki sam jak w i5. Ponieważ rdzeń dysponuje wieloma potokami, to pozwala to w większym stopniu wykorzystać możliwości rdzenia (przy większym zużyciu energii). I np. kiedy instrukcja jednego wątku czeka na dane z pamięci, bo wystąpił cache miss, to normalnie bez HT rdzeń byłby bezczynny na wiele cykli - a mając HT wykonuje się po prostu drugi wątek. Niestety HT nie zwiększa fizycznej liczby potoków, wielkości buforów, liczby rejestrów ani wielkości cache L1/L2. To oznacza, że dwa wątki "walczą" o ograniczone zasoby. A z tymi zasobami to też nie zawsze jest różowo, bo nie każdy potok rdzenia potrafi wykonywać każdą instrukcję. Niektóre jednostki jak np. fdiv czy jednostka wektorowa występują w bardzo ograniczonej liczbie (do niedawna: 1, w nowszych już chyba są po dwie). I jeśli kod jest dobrze zoptymalizowany, tzn. tak, że jeden wątek wykorzystuje na maksa wszystko co daje rdzeń (czyli ma wysoki współczynnik instructions-per-cycle), czyli instrukcje nie czekają na siebie/pamięć i lecą równoległymi potokami, to hyperthreading może kompletnie nic nie dać, a wręcz nawet zaszkodzić (!), bo np. cache dostępny dla wątku staje się efektywnie dwa razy mniejszy.
W praktyce na swoim i7 widzę że dociśnięcie go 8 wątkami daje jakieś 0-40% więcej mocy niż przy 4 wątkach, w zależności od programu. 2x więcej nigdy nie widziałem. Szału więc nie ma, ale czasem się przydaje.
http://www.agner.org/optimize/blog/read.php?i=6