51 for (
const auto& s : labels)
52 timer.insert({ s, std::make_unique<vmTimer>(s) });
59 timer.at(timerLabel)->start();
63 std::cout <<
"No timer \"" << timerLabel <<
"\" pre-determined!" << std::endl;
72 timer.at(timerLabel)->stop();
76 std::cout <<
"No timer \"" << timerLabel <<
"\" pre-determined!" << std::endl;
83 for (
auto& tmr_ :
timer)
90 ss << std::setw(6) <<
"Step" <<
"" \
91 << std::setw(9) <<
"Time" <<
"" \
92 << std::setw(9) <<
"N" <<
"";
95 ss << std::setw(9) << k <<
"";
97 ss << std::setw(9) <<
"Other" <<
"";
99 std::stringstream timeStatFileName;
102 std::ofstream timeStatFile(timeStatFileName.str());
107 timeStatFile.close();
108 timeStatFile.clear();
115 std::stringstream ss;
116 ss << std::setw(9) << stepNo <<
"" \
117 << std::setw(9) << curTime <<
"" \
128 ss << std::setw(9) << duration <<
"";
129 tOther += (k ==
"Step" ? duration : -duration);
131 ss << std::setw(9) << tOther;
133 timestatFile << std::endl << ss.str();
Заголовочный файл с описанием класса PasportGen.
Заголовочный файл с описанием класса TimesGen.
Заголовочный файл с описанием класса WorldGen.
std::string dir
Рабочий каталог задачи
std::vector< std::string > timerLabelList
Список имен счетчиков
void GenerateStatString(size_t stepNo, double curTime, size_t N)
Формирование очередной строки файла временной статистики
void GenerateStatHeader()
Формирование заголовка файла временной статистики
void stop(const std::string &timerLabel)
Останов счетчика
void start(const std::string &timerLabel)
Запуск счетчика
void resetAll()
Сброс всех счетчиков
const WorldGen & W
Константная ссылка на решаемую задачу
TimersGen(const WorldGen &W_, std::vector< std::string > labels)
Конструктор
std::map< std::string, std::unique_ptr< vmTimer > > timer
Ассоциативный массив { имя, счетчик }.
Класс, опеделяющий текущую решаемую задачу
const PassportGen & getPassportGen() const
std::chrono::duration< float, std::chrono::milliseconds::period > ms
Основная единица измерения времени — миллисекунды
void PrintHeaderToTextFile(std::ofstream &str, const std::string &header)
Формирование подзаголовка в текстовом файле вывода программы VM2D/VM3D.
void PrintLogoToTextFile(std::ofstream &str, const std::string &fileName, const std::string &descr)
Формирование заголовка файла программы VM2D/VM3D.