Какова сравнительная стоимость атомарной операции RMW и вызова функции?

Насколько я понимаю, инструкции по атомным машинам могут быть на два порядка медленнее, чем неатомарная операция. Например, учитывая

int x;
x++

а также

std::atomic<int> y;
y++;

я понимаю, что x++ как правило, работает намного быстрее, чем y++, (Я предполагаю, что операция приращения соответствует базовой машинной инструкции. Я уверен, что точная сравнительная стоимость варьируется от архитектуры к архитектуре, но я говорю о практическом правиле.)

Меня интересует относительная стоимость атомарной операции RMW и вызова не встроенной функции, опять же, как общее практическое правило. Например, учитывая эту не встроенную функцию,

void f(){}

что мы можем сказать о стоимости y++ (то есть, атомарный прирост) по сравнению со стоимостью выполнения не встроенного вызова f?

Моя мотивация состоит в том, чтобы попытаться сделать общее утверждение, что «атомные операции намного дороже, чем неатомарные операции» в перспективе. Один из способов сделать это — попытаться понять, насколько дорогая атомарная операция RMW по сравнению с вызовом и возвратом из не встроенной функции.

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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]