Мне интересно узнать о производительности использования 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
Какова производительность std::atomic и неатомарных переменных? ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1714252448
Anonymous
Мне интересно узнать о производительности использования std::atomic по сравнению с обычным числом с плавающей запятой в приложении. Мне тоже интересно, что на это влияет. Я часто вижу темы о производительности атомов и мьютексов, но мне труднее найти информацию об атомах и неатомарностях.
Я не использую это как способ сделать мой код потокобезопасным или нет, просто хочу понять связанные с этим накладные расходы.
(EDIT: на этом этапе исходного вопроса Я привел пример (см. ниже), который должен был иллюстрировать изменение реализации, а не задавать конкретный вопрос об этом коде. Похоже, это смутило людей относительно того, о чем я спрашивал, поэтому я его удалил.)
В основном я хочу знать, каковы общие факторы, влияющие на производительность std::atomic. Это платформа? Как они используются? Не медленнее ли использовать атомы, к которым два потока обращаются примерно к одному и тому же объему, вместо того, чтобы один поток обращался к ним 95% времени, а другой лишь изредка?
Кроме того, есть ли какая-либо разница между std::atomic и std::atomic в этом отношении?
Спасибо заранее,
Адам
Пример из исходного вопроса :
По сути, я попробовал создать миллион чисел с плавающей запятой и записать в них значения 200 раз. У меня это заняло 0,87 секунды. Когда я изменил их на std::atomic, это заняло около 2,5 секунд. Это означает, что использование std::atomic примерно в 3 раза дороже.
Я пробовал это, но для чтение значений, а не запись, и обнаружил, что обычные операции с плавающей запятой и std::atomic занимают одинаковое количество времени.
Но влияет ли на это что-то еще? Если другой поток записывает/читает мои атомы, замедляет ли это другие операции чтения/записи в ту же переменную? Вероятно, так и есть, но как мне это лучше понять?
Подробнее здесь: [url]https://stackoverflow.com/questions/51846894/what-is-the-performance-of-stdatomic-vs-non-atomic-variables[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия