У меня есть программа на C++, которую я использую в качестве службы на своей старой Linux-машине: я запускаю ее с помощью программы sv start и останавливаю с помощью программы sv stop - к сожалению, иногда я могу' правильно, останови это:
Код: Выделить всё
-bash-4.2# sv stop program
timeout: run: program: (pid 1234) 15666s, want down, got TERM
Как показали эксперименты, большая часть этого времени уходит на уничтожение статического dataMap unordered_map с более чем 50 тысячами таких пар (может быть, потому, что он переносится на диск, не знаю):
р>
Код: Выделить всё
struct Data {
int id;
bool flag;
std::string str1;
std::string str2;
std::string str3;
std::string str4;
}
static std::unordered_map dataMap
Maybe another container will be destroyed faster?
Источник: https://stackoverflow.com/questions/781 ... to-destroy
Мобильная версия