Какова производительность std::atomic и неатомарных переменных?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Какова производительность std::atomic и неатомарных переменных?

Сообщение Anonymous »

Мне интересно узнать о производительности использования std::atomic по сравнению с обычным числом с плавающей запятой в приложении. Мне тоже интересно, что на это влияет. Я часто вижу темы о производительности атомов и мьютексов, но мне труднее найти информацию об атомах и неатомарностях.

Я не использую это как способ сделать мой код потокобезопасным или нет, просто хочу понять связанные с этим накладные расходы.

(EDIT: на этом этапе исходного вопроса Я привел пример (см. ниже), который должен был иллюстрировать изменение реализации, а не задавать конкретный вопрос об этом коде. Похоже, это смутило людей относительно того, о чем я спрашивал, поэтому я его удалил.)

В основном я хочу знать, каковы общие факторы, влияющие на производительность std::atomic. Это платформа? Как они используются? Не медленнее ли использовать атомы, к которым два потока обращаются примерно к одному и тому же объему, вместо того, чтобы один поток обращался к ним 95% времени, а другой лишь изредка?

Кроме того, есть ли какая-либо разница между std::atomic и std::atomic в этом отношении?

Спасибо заранее,

Адам



Пример из исходного вопроса :

По сути, я попробовал создать миллион чисел с плавающей запятой и записать в них значения 200 раз. У меня это заняло 0,87 секунды. Когда я изменил их на std::atomic, это заняло около 2,5 секунд. Это означает, что использование std::atomic примерно в 3 раза дороже.

Я пробовал это, но для чтение значений, а не запись, и обнаружил, что обычные операции с плавающей запятой и std::atomic занимают одинаковое количество времени.

Но влияет ли на это что-то еще? Если другой поток записывает/читает мои атомы, замедляет ли это другие операции чтения/записи в ту же переменную? Вероятно, так и есть, но как мне это лучше понять?

Подробнее здесь: https://stackoverflow.com/questions/518 ... -variables
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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