Следующий код приводит к увеличению использования памяти:
#include <shared_mutex>
class foo
{
public:
void bar()
{
std::unique_lock lock(m_mtx);
}
std::shared_mutex m_mtx;
};
int main()
{
while (1)
{
foo obj;
obj.bar();
}
}
Следующее не делает: (только изменяет тип мьютекса)
#include <mutex>
class foo
{
public:
void bar()
{
std::unique_lock lock(m_mtx);
}
std::mutex m_mtx;
};
int main()
{
while (1)
{
foo obj;
obj.bar();
}
}
Я использую Windows 7 ииспользуя диспетчер задач для отслеживания потребления памяти моей программой.
Я компилирую с помощью mingw и этой простой командной строки для компиляции:
g++.exe -std=c++17 -o mytest main.cpp
Что я делаю не так с использованием shared_mutex?