Что нужно знать об оптимизации компилятора, CLR или ЦП при работе с потоками и неблокирующей синхронизацией? - PullRequest
1 голос
/ 04 декабря 2009

Как видно из заголовка, что нужно знать об оптимизации компилятора, CLR или ЦП при работе с потоками и неблокирующей синхронизацией?

Я немного прочитал о переупорядочении инструкций для повышения эффективности, которые могли бы сломать вещи, и оптимизации кэширования, которая приведет к тому, что переменные не будут видны другим потокам сразу другое (я уверен, что есть), что мне нужно знать?

Будем весьма благодарны за любые ссылки на рекомендуемые материалы для чтения / блоги / статьи / и т. Д.

Спасибо, Эгиль.

Обновление: Благодаря ссылке Jons на сообщение в блоге Джо Даффи, я нашел намного больше отличной информации, которой, я думал, я поделюсь с вами, ребята:

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

У Джо Даффи есть отличная книга под названием " Параллельное программирование в Windows ", которую я определенно рекомендую прочитать, если вы заинтересованы в параллелизме в Windows (включая программирование без блокировки).

1 голос
/ 04 декабря 2009

Вам нужно знать модель памяти .NET, в основном. Не обращайте внимания на то, какие оптимизации выполняются в данный момент - код для модели.

Я бы рекомендовал эту запись в блоге Джо Даффи в качестве хорошей отправной точки.

Я также рекомендовал бы, чтобы вы не свернули свой собственный код без блокировки. Это просто слишком тяжело для смертных, ИМО. Используйте фреймворки, такие как Parallel Extensions (в .NET 4.0), которые делают то, что вам нужно.

...