Почему std::mutex намного хуже, чем std::shared_mutex в Visual C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему std::mutex намного хуже, чем std::shared_mutex в Visual C++?

Сообщение Anonymous »

Выполнили следующее в Visual Studio 2022 в режиме выпуска:

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

#include 
#include 
#include 
#include 

std::mutex mx;
std::shared_mutex smx;

constexpr int N = 100'000'000;

int main()
{
auto t1 = std::chrono::steady_clock::now();
for (int i = 0; i != N; i++)
{
std::unique_lock l{ mx };
}
auto t2 = std::chrono::steady_clock::now();
for (int i = 0; i != N; i++)
{
std::unique_lock l{ smx };
}
auto t3 = std::chrono::steady_clock::now();

auto d1 = std::chrono::duration_cast(t2 - t1);
auto d2 = std::chrono::duration_cast(t3 - t2);

std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/69990339/why-is-stdmutex-so-much-worse-than-stdshared-mutex-in-visual-c[/url]
Ответить

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

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

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

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

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