Какова стоимость ключевого слова heating в многопроцессорной системе? ⇐ C#

Место общения программистов C#
Anonymous
Какова стоимость ключевого слова heating в многопроцессорной системе?

Сообщение Anonymous »

Мы столкнулись с проблемами производительности, и одна из потенциальных причин — централизованное использование энергозависимого синглтона. Конкретный код имеет вид:

Код: Выделить всё

class foo {
static volatile instance;
static object l = new object();

public static foo Instance {
if (instance == null)
lock(l) {
if (instance == null)
instance = new foo();
}

return instance;
}
}
Это работает на 8-стороннем блоке, и мы видим переключение контекста со скоростью 500 000 в секунду. Типичные системные ресурсы в порядке: загрузка процессора 25 %, загрузка памяти 25 %, низкий уровень ввода-вывода, отсутствие подкачки и т. д.
Вызывает ли использование изменяемого поля барьер памяти или что-либо еще? типа перезагрузки кэша процессора? Или каждый раз он просто обращается к основной памяти только для этого поля?

Подробнее здесь: https://stackoverflow.com/questions/100 ... sor-system

Вернуться в «C#»