Я написал очень сложный многопоточный код. Он использует спиннинг, выходы и библиотеку блокировок.
Код работает безупречно на моей машине с Core 2 Duo 2 ГГц. На моей двухъядерной четырехъядерной машине с частотой 2,4 ГГц i5 она работает медленно (например, медленнее, чем Core 2) или полностью не работает (просто работает на 0% ЦП).
Обе машины имеют Win 7 Home Premium 64 bit и .Net 4.5 framework. Моя машинная разработка - Core 2 Duo. Я разработал в Visual Studio 2011 Dev Preview. Код скомпилирован с оптимизацией на.
Я не могу вставить несколько строк кода здесь. Может ли кто-нибудь даже начать говорить мне, почему это может происходить / что искать в моем коде. Я немного шокирован этим результатом сборки .Net.
EDIT
Я проверил скорость BlockingCollection от MS, и это тоже была доля скорости на i5, но все 4 «ядра» были на 100% = некоторый тип состояния гонки. Однако здесь я просто вызываю методы TryAdd () / Take () без вращения или любого другого типа управления потоком с моей стороны.